From 8cfd24df54025fcc56ce3707f1223958b9204813 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 23 Mar 2005 23:26:58 +0000 Subject: [PATCH] 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 --- lib/Analysis/AliasAnalysis.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/Analysis/AliasAnalysis.cpp b/lib/Analysis/AliasAnalysis.cpp index da54c1b3da1..5236435d206 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;