Do not propagate invalid domains over back edges
authorJohannes Doerfert <doerfert@cs.uni-saarland.de>
Mon, 25 Apr 2016 13:34:50 +0000 (13:34 +0000)
committerJohannes Doerfert <doerfert@cs.uni-saarland.de>
Mon, 25 Apr 2016 13:34:50 +0000 (13:34 +0000)
llvm-svn: 267402

polly/lib/Analysis/ScopInfo.cpp

index e1ef23c..6ad607e 100644 (file)
@@ -2370,6 +2370,10 @@ void Scop::propagateInvalidStmtDomains(Region *R, ScopDetection &SD,
       if (!SuccStmt)
         continue;
 
+      // Skip backedges.
+      if (DT.dominates(SuccBB, BB))
+        continue;
+
       auto *SuccBBLoop = getFirstNonBoxedLoopFor(SuccBB, LI, BoxedLoops);
       auto *AdjustedInvalidDomain = adjustDomainDimensions(
           *this, isl_set_copy(InvalidDomain), BBLoop, SuccBBLoop);