diff options
author | Alina Sbirlea <asbirlea@google.com> | 2018-01-19 10:26:40 +0000 |
---|---|---|
committer | Alina Sbirlea <asbirlea@google.com> | 2018-01-19 10:26:40 +0000 |
commit | df26cf8117beebcf28697182d7ea5e42f9f3cdc9 (patch) | |
tree | 5c4dc0448188a9eae2c2580e3400f73cd620584f /llvm/lib/Analysis/BasicAliasAnalysis.cpp | |
parent | 2867bd72c02d4b148356a580d80e9cb598d2d291 (diff) | |
download | bcm5719-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.cpp | 5 |
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 |