[CaptureTracking] Ignore ephemeral values when determining pointer escapeness
authorArthur Eubanks <aeubanks@google.com>
Tue, 5 Apr 2022 21:51:53 +0000 (14:51 -0700)
committerArthur Eubanks <aeubanks@google.com>
Thu, 7 Apr 2022 17:11:14 +0000 (10:11 -0700)
commit17fdaccccfad9b143e4aadbcdda7f645de127153
treeac64d63320cbf88c1cde147ccfb0fb82c48a5a44
parent26d974dc3a2c9d1e92246d2168eb6589ce52a7de
[CaptureTracking] Ignore ephemeral values when determining pointer escapeness

Ephemeral values cannot cause a pointer to escape.

No change in compile time:
https://llvm-compile-time-tracker.com/compare.php?from=4371710085ba1c376a094948b806ddd3b88319de&to=c5ddbcc4866f38026737762ee8d7b9b00395d4f4&stat=instructions

This partially fixes some regressions caused by more calls to `__builtin_assume` (D122397).

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D123162
llvm/include/llvm/Analysis/CaptureTracking.h
llvm/lib/Analysis/CaptureTracking.cpp
llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
llvm/test/Transforms/DeadStoreElimination/assume.ll