[SCEV] Fix one more caller blindly passing the latch to SCEV's
authorChandler Carruth <chandlerc@gmail.com>
Sat, 11 Oct 2014 05:28:30 +0000 (05:28 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sat, 11 Oct 2014 05:28:30 +0000 (05:28 +0000)
getSmallConstantTripCount even when it isn't the exiting block.

I missed this in my first audit, very sorry. This was found in LNT and
elsewhere. I don't have a test case, but it was completely obvious from
inspection that this was the problem. I'll see if I can reduce a test
case, but I'm not really hopeful, and the value seems quite low.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219562 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Vectorize/LoopVectorize.cpp

index 2004f62a80c43589711c713bd80046432274b8af..d45b8d8a72b445ae3946f947919c5a4b5fd24ad2 100644 (file)
@@ -5517,8 +5517,7 @@ LoopVectorizationCostModel::selectUnrollFactor(bool OptForSize,
     return 1;
 
   // Do not unroll loops with a relatively small trip count.
-  unsigned TC = SE->getSmallConstantTripCount(TheLoop,
-                                              TheLoop->getLoopLatch());
+  unsigned TC = SE->getSmallConstantTripCount(TheLoop);
   if (TC > 1 && TC < TinyTripCountUnrollThreshold)
     return 1;