summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-11-19 21:57:48 +0000
committerDan Gohman <gohman@apple.com>2009-11-19 21:57:48 +0000
commitf94b5edc452c32d9ae258e7de30c33391fda6cc9 (patch)
tree3e3d625dfac1b337e2c16274d369855e252bef6b /include
parent07ba906413ed0e8e196a6795665f349ba8fdca4c (diff)
downloadexternal_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.h6
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