diff options
author | Dan Gohman <gohman@apple.com> | 2009-11-19 21:57:48 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2009-11-19 21:57:48 +0000 |
commit | f94b5edc452c32d9ae258e7de30c33391fda6cc9 (patch) | |
tree | 3e3d625dfac1b337e2c16274d369855e252bef6b /include | |
parent | 07ba906413ed0e8e196a6795665f349ba8fdca4c (diff) | |
download | external_llvm-f94b5edc452c32d9ae258e7de30c33391fda6cc9.zip external_llvm-f94b5edc452c32d9ae258e7de30c33391fda6cc9.tar.gz external_llvm-f94b5edc452c32d9ae258e7de30c33391fda6cc9.tar.bz2 |
Extend CaptureTracking to indicate when a value is never stored, even
if it is not ultimately captured. Teach BasicAliasAnalysis that a
local object address which does not escape and is never stored does
not alias with a value resulting from a load.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89398 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Analysis/CaptureTracking.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/llvm/Analysis/CaptureTracking.h b/include/llvm/Analysis/CaptureTracking.h index a0ff503..493ecf5 100644 --- a/include/llvm/Analysis/CaptureTracking.h +++ b/include/llvm/Analysis/CaptureTracking.h @@ -21,8 +21,12 @@ namespace llvm { /// by the enclosing function (which is required to exist). This routine can /// be expensive, so consider caching the results. The boolean ReturnCaptures /// specifies whether returning the value (or part of it) from the function + /// counts as capturing it or not. The boolean StoreCaptures specified whether + /// storing the value (or part of it) into memory anywhere automatically /// counts as capturing it or not. - bool PointerMayBeCaptured(const Value *V, bool ReturnCaptures); + bool PointerMayBeCaptured(const Value *V, + bool ReturnCaptures, + bool StoreCaptures); } // end namespace llvm |