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 | 774394c68abc88a0d49f207abc1d4da9bd0675b8 (patch) | |
tree | e7246ccd05c853eb3e21295882fe5978d0b870af /lib/Analysis/MemoryDependenceAnalysis.cpp | |
parent | 2b3fa322b8788e62e28bc6989a53737bf9483437 (diff) |
Hoist simpler checks above llvm::PointerMayBeCaptured. No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156687 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/MemoryDependenceAnalysis.cpp')
-rw-r--r-- | lib/Analysis/MemoryDependenceAnalysis.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/Analysis/MemoryDependenceAnalysis.cpp b/lib/Analysis/MemoryDependenceAnalysis.cpp index 3a544f35d5..ad89124371 100644 --- a/lib/Analysis/MemoryDependenceAnalysis.cpp +++ b/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; |