summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/BasicAliasAnalysis.cpp
diff options
context:
space:
mode:
authorAlina Sbirlea <asbirlea@google.com>2018-01-19 10:26:40 +0000
committerAlina Sbirlea <asbirlea@google.com>2018-01-19 10:26:40 +0000
commitdf26cf8117beebcf28697182d7ea5e42f9f3cdc9 (patch)
tree5c4dc0448188a9eae2c2580e3400f73cd620584f /llvm/lib/Analysis/BasicAliasAnalysis.cpp
parent2867bd72c02d4b148356a580d80e9cb598d2d291 (diff)
downloadbcm5719-llvm-df26cf8117beebcf28697182d7ea5e42f9f3cdc9.tar.gz
bcm5719-llvm-df26cf8117beebcf28697182d7ea5e42f9f3cdc9.zip
[ModRefInfo] Return NoModRef for Must and NoModRef.
Summary: In ModRefInfo "Must" was introduced to track presence of MustAlias, but we still want to return NoModRef when there is neither Mod or Ref, even when MustAlias is found. Patch has small fixes to ensure this happens. Minor cleanup to remove nesting for 2 if statements when calling getModRefInfo for 2 ImmutableCallSites. Reviewers: sanjoy Subscribers: jlebar, llvm-commits Differential Revision: https://reviews.llvm.org/D42209 llvm-svn: 322932
Diffstat (limited to 'llvm/lib/Analysis/BasicAliasAnalysis.cpp')
-rw-r--r--llvm/lib/Analysis/BasicAliasAnalysis.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
index dab551049cb..142589b68f8 100644
--- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
@@ -852,8 +852,11 @@ ModRefInfo BasicAAResult::getModRefInfo(ImmutableCallSite CS,
IsMustAlias = false;
// Early return if we improved mod ref information
- if (!isModAndRefSet(Result))
+ if (!isModAndRefSet(Result)) {
+ if (isNoModRef(Result))
+ return ModRefInfo::NoModRef;
return IsMustAlias ? setMust(Result) : clearMust(Result);
+ }
}
// If the CallSite is to malloc or calloc, we can assume that it doesn't
OpenPOWER on IntegriCloud