Hoist simpler checks above llvm::PointerMayBeCaptured. No functional change intended.
authorChad Rosier <mcrosier@apple.com>
Sat, 12 May 2012 00:43:40 +0000 (00:43 +0000)
committerChad Rosier <mcrosier@apple.com>
Sat, 12 May 2012 00:43:40 +0000 (00:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156687 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/MemoryDependenceAnalysis.cpp

index 3a544f35d502cdb83d9441690e7d033c92cbffa8..ad891243719c391e6de69b0d698d71e03adaaf94 100644 (file)
@@ -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;