Instead of testing whether an instruction dominates the loop preheader,
[oota-llvm.git] / lib / Analysis / IVUsers.cpp
index ecb7df80cf18961b0456e4b36e75de0686ba2680..543e017fc9dd7907dead8f99680a39de846561f3 100644 (file)
@@ -121,11 +121,11 @@ static bool getSCEVStartAndStride(const SCEV *&SH, Loop *L, Loop *UseLoop,
 
   Start = SE->getAddExpr(Start, AddRecStart);
 
-  // If stride is an instruction, make sure it dominates the loop preheader.
+  // If stride is an instruction, make sure it properly dominates the header.
   // Otherwise we could end up with a use before def situation.
   if (!isa<SCEVConstant>(AddRecStride)) {
-    BasicBlock *Preheader = L->getLoopPreheader();
-    if (!AddRecStride->dominates(Preheader, DT))
+    BasicBlock *Header = L->getHeader();
+    if (!AddRecStride->properlyDominates(Header, DT))
       return false;
 
     DEBUG(errs() << "[" << L->getHeader()->getName()