diff options
author | Chris Lattner <sabre@nondot.org> | 2009-11-23 16:46:41 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-11-23 16:46:41 +0000 |
commit | 403ac2ece33046c58b66fffa105184f44fa4527e (patch) | |
tree | 0e443831ae8d644474da473c22b16f5fd0b29d41 /lib/Analysis/AliasAnalysis.cpp | |
parent | 5d56b2d47d324ecf2d1cc1551a28cce49d16ab01 (diff) | |
download | external_llvm-403ac2ece33046c58b66fffa105184f44fa4527e.zip external_llvm-403ac2ece33046c58b66fffa105184f44fa4527e.tar.gz external_llvm-403ac2ece33046c58b66fffa105184f44fa4527e.tar.bz2 |
use the new isNoAlias method to simplify some code, only do an escaping check if
we have a non-constant pointer. Constant pointers can't be local.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89665 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/AliasAnalysis.cpp')
-rw-r--r-- | lib/Analysis/AliasAnalysis.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/Analysis/AliasAnalysis.cpp b/lib/Analysis/AliasAnalysis.cpp index 92fa1df..dee9b53 100644 --- a/lib/Analysis/AliasAnalysis.cpp +++ b/lib/Analysis/AliasAnalysis.cpp @@ -127,17 +127,18 @@ AliasAnalysis::getModRefBehavior(Function *F, AliasAnalysis::ModRefResult AliasAnalysis::getModRefInfo(CallSite CS, Value *P, unsigned Size) { - ModRefResult Mask = ModRef; ModRefBehavior MRB = getModRefBehavior(CS); if (MRB == DoesNotAccessMemory) return NoModRef; - else if (MRB == OnlyReadsMemory) + + ModRefResult Mask = ModRef; + if (MRB == OnlyReadsMemory) Mask = Ref; else if (MRB == AliasAnalysis::AccessesArguments) { bool doesAlias = false; for (CallSite::arg_iterator AI = CS.arg_begin(), AE = CS.arg_end(); AI != AE; ++AI) - if (alias(*AI, ~0U, P, Size) != NoAlias) { + if (!isNoAlias(*AI, ~0U, P, Size)) { doesAlias = true; break; } |