diff options
author | Hal Finkel <hfinkel@anl.gov> | 2014-07-21 12:27:23 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2014-07-21 12:27:23 +0000 |
commit | c782aa5a9b5d2ae961754c070c88a162f1e436df (patch) | |
tree | dfb9b7d3798e6dd4bb17028c551eb7f77a8d5791 /llvm/lib/Analysis/AliasAnalysis.cpp | |
parent | decb7a2b0bd567006a372bffe3240cda1292c655 (diff) | |
download | bcm5719-llvm-c782aa5a9b5d2ae961754c070c88a162f1e436df.tar.gz bcm5719-llvm-c782aa5a9b5d2ae961754c070c88a162f1e436df.zip |
Move isIdentifiedFunctionLocal from BasicAA to AA
The ability to identify function locals will exist outside of BasicAA (for
example, logic for inferring noalias function arguments will need this), so
make this concept generally accessible without code duplication.
No functionality change.
llvm-svn: 213514
Diffstat (limited to 'llvm/lib/Analysis/AliasAnalysis.cpp')
-rw-r--r-- | llvm/lib/Analysis/AliasAnalysis.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/AliasAnalysis.cpp b/llvm/lib/Analysis/AliasAnalysis.cpp index c24da6a3c4a..fa1484d57de 100644 --- a/llvm/lib/Analysis/AliasAnalysis.cpp +++ b/llvm/lib/Analysis/AliasAnalysis.cpp @@ -582,3 +582,14 @@ bool llvm::isIdentifiedObject(const Value *V) { return A->hasNoAliasAttr() || A->hasByValAttr(); return false; } + +/// isIdentifiedFunctionLocal - Return true if V is umabigously identified +/// at the function-level. Different IdentifiedFunctionLocals can't alias. +/// Further, an IdentifiedFunctionLocal can not alias with any function +/// arguments other than itself, which is not necessarily true for +/// IdentifiedObjects. +bool llvm::isIdentifiedFunctionLocal(const Value *V) +{ + return isa<AllocaInst>(V) || isNoAliasCall(V) || isNoAliasArgument(V); +} + |