diff options
author | Chris Lattner <sabre@nondot.org> | 2005-03-23 23:26:58 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-03-23 23:26:58 +0000 |
commit | 8cfd24df54025fcc56ce3707f1223958b9204813 (patch) | |
tree | c379f07f9e2b7e4a5133072cca32bbea67539177 /lib/Analysis/AliasAnalysis.cpp | |
parent | d433bde071c6056295db73944df348b843c1989c (diff) |
Make this more efficient by only making one virtual method call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20793 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/AliasAnalysis.cpp')
-rw-r--r-- | lib/Analysis/AliasAnalysis.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/Analysis/AliasAnalysis.cpp b/lib/Analysis/AliasAnalysis.cpp index da54c1b3da..5236435d20 100644 --- a/lib/Analysis/AliasAnalysis.cpp +++ b/lib/Analysis/AliasAnalysis.cpp @@ -114,11 +114,13 @@ AliasAnalysis::getModRefInfo(StoreInst *S, Value *P, unsigned Size) { AliasAnalysis::ModRefResult AliasAnalysis::getModRefInfo(CallSite CS, Value *P, unsigned Size) { ModRefResult Mask = ModRef; - if (Function *F = CS.getCalledFunction()) - if (onlyReadsMemory(F)) { - if (doesNotAccessMemory(F)) return NoModRef; + if (Function *F = CS.getCalledFunction()) { + ModRefBehavior MRB = getModRefBehavior(F, CallSite()); + if (MRB == OnlyReadsMemory) Mask = Ref; - } + else if (MRB == DoesNotAccessMemory) + return NoModRef; + } if (!AA) return Mask; |