Avoid a confusing assert for silly options: -unroll-runtime -unroll-count=1.
authorAndrew Trick <atrick@apple.com>
Fri, 16 Dec 2011 02:03:48 +0000 (02:03 +0000)
committerAndrew Trick <atrick@apple.com>
Fri, 16 Dec 2011 02:03:48 +0000 (02:03 +0000)
No need for an explicit test case for an unsupported combination of options.

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

lib/Transforms/Utils/LoopUnroll.cpp

index b96f14b1446468388c9a0108e89c3a8bfa0e695f..512b6895011bfb0c380cd41289579a58b70db8c3 100644 (file)
@@ -176,6 +176,11 @@ bool llvm::UnrollLoop(Loop *L, unsigned Count, unsigned TripCount,
   if (TripCount != 0 && Count > TripCount)
     Count = TripCount;
 
+  // Don't enter the unroll code if there is nothing to do. This way we don't
+  // need to support "partial unrolling by 1".
+  if (TripCount == 0 && Count < 2)
+    return false;
+
   assert(Count > 0);
   assert(TripMultiple > 0);
   assert(TripCount == 0 || TripCount % TripMultiple == 0);