diff options
author | Geoff Berry <gberry@codeaurora.org> | 2016-04-29 17:18:28 +0000 |
---|---|---|
committer | Geoff Berry <gberry@codeaurora.org> | 2016-04-29 17:18:28 +0000 |
commit | b92cd5293e9d1f9443eff5476a4db90f4afd0bb8 (patch) | |
tree | 2085c00eae202f17e7310299d2313cef1bebe6e9 /llvm/lib/Analysis/BasicAliasAnalysis.cpp | |
parent | e749ce53d48b5b355137b8b81db62852e1223014 (diff) | |
download | llvm-b92cd5293e9d1f9443eff5476a4db90f4afd0bb8.zip llvm-b92cd5293e9d1f9443eff5476a4db90f4afd0bb8.tar.gz llvm-b92cd5293e9d1f9443eff5476a4db90f4afd0bb8.tar.bz2 |
[BasicAA] Treat llvm.assume as not accessing memory in getModRefBehavior(Function)
Reviewers: dberlin, chandlerc, hfinkel, reames, sanjoy
Subscribers: mcrosier, llvm-commits
Differential Revision: http://reviews.llvm.org/D19730
llvm-svn: 268068
Diffstat (limited to 'llvm/lib/Analysis/BasicAliasAnalysis.cpp')
-rw-r--r-- | llvm/lib/Analysis/BasicAliasAnalysis.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp index 4c6f001..14d92d6 100644 --- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp +++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp @@ -575,6 +575,12 @@ FunctionModRefBehavior BasicAAResult::getModRefBehavior(const Function *F) { if (F->doesNotAccessMemory()) return FMRB_DoesNotAccessMemory; + // While the assume intrinsic is marked as arbitrarily writing so that + // proper control dependencies will be maintained, it never aliases any + // particular memory location. + if (F->getIntrinsicID() == Intrinsic::assume) + return FMRB_DoesNotAccessMemory; + FunctionModRefBehavior Min = FMRB_UnknownModRefBehavior; // If the function declares it only reads memory, go with that. |