Minor tweak to MDA
[oota-llvm.git] / lib / Analysis / MemoryDependenceAnalysis.cpp
index bcfea647b529e3d16d2f23e0780c9e3a26298af4..fa67aeb1bce3bf6ea1bb5a2ebf4d771ef0c4452f 100644 (file)
@@ -423,7 +423,9 @@ getPointerDependencyFrom(const AliasAnalysis::Location &MemLoc, bool isLoad,
   }
 
   // Walk backwards through the basic block, looking for dependencies.
-  while (ScanIt != BB->begin()) {
+  // We can stop before processing PHIs or dbg intrinsics.
+  const BasicBlock::iterator Begin(BB->getFirstNonPHIOrDbg());
+  while (ScanIt != Begin) {
     Instruction *Inst = --ScanIt;
 
     if (IntrinsicInst *II = dyn_cast<IntrinsicInst>(Inst))