diff options
author | Chad Rosier <mcrosier@apple.com> | 2012-05-12 00:43:40 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2012-05-12 00:43:40 +0000 |
commit | 10702d5f2225ec8da11cd1ef687f0bf958b53ba0 (patch) | |
tree | 53a1294a846fb1b6c67ee88d6f1ad9d58f0d6d2e /llvm/lib/Analysis/MemoryDependenceAnalysis.cpp | |
parent | dff044040520af1d334cd74c973786fd53955065 (diff) | |
download | bcm5719-llvm-10702d5f2225ec8da11cd1ef687f0bf958b53ba0.tar.gz bcm5719-llvm-10702d5f2225ec8da11cd1ef687f0bf958b53ba0.zip |
Hoist simpler checks above llvm::PointerMayBeCaptured. No functional change intended.
llvm-svn: 156687
Diffstat (limited to 'llvm/lib/Analysis/MemoryDependenceAnalysis.cpp')
-rw-r--r-- | llvm/lib/Analysis/MemoryDependenceAnalysis.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp b/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp index 3a544f35d50..ad891243719 100644 --- a/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp +++ b/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp @@ -386,15 +386,17 @@ MemoryDependenceAnalysis::getModRefInfo(const Instruction *Inst, // with a smarter AA in place, this test is just wasting compile time. if (!DT) return AliasAnalysis::ModRef; const Value *Object = GetUnderlyingObject(MemLoc.Ptr, TD); - if (!isIdentifiedObject(Object) || isa<GlobalValue>(Object)) + if (!isIdentifiedObject(Object) || isa<GlobalValue>(Object) || + isa<Constant>(Object)) return AliasAnalysis::ModRef; + ImmutableCallSite CS(Inst); - if (!CS.getInstruction()) return AliasAnalysis::ModRef; + if (!CS.getInstruction() || CS.getInstruction() == Object) + return AliasAnalysis::ModRef; CapturesBefore CB(Inst, DT); llvm::PointerMayBeCaptured(Object, &CB); - - if (isa<Constant>(Object) || CS.getInstruction() == Object || CB.Captured) + if (CB.Captured) return AliasAnalysis::ModRef; unsigned ArgNo = 0; |