summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
diff options
context:
space:
mode:
authorDavid L Kreitzer <david.l.kreitzer@intel.com>2016-03-25 14:24:52 +0000
committerDavid L Kreitzer <david.l.kreitzer@intel.com>2016-03-25 14:24:52 +0000
commit8d441eb936fa819d781f985ced1571a6a541710f (patch)
treee200a614bc4fc135739e8eebf1f6bc00ab5338af /llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
parentddca355fe3b93b02b3556ad52b3bd8432dcf0a4c (diff)
downloadbcm5719-llvm-8d441eb936fa819d781f985ced1571a6a541710f.tar.gz
bcm5719-llvm-8d441eb936fa819d781f985ced1571a6a541710f.zip
Enable non-power-of-2 #pragma unroll counts.
Patch by Evgeny Stupachenko. Differential Revision: http://reviews.llvm.org/D18202 llvm-svn: 264407
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
index e47872288f0..c3761dcf4e8 100644
--- a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
@@ -684,11 +684,6 @@ static bool tryToUnrollLoop(Loop *L, DominatorTree &DT, LoopInfo *LI,
}
if (HasPragma) {
- if (PragmaCount != 0)
- // If loop has an unroll count pragma mark loop as unrolled to prevent
- // unrolling beyond that requested by the pragma.
- SetLoopAlreadyUnrolled(L);
-
// Emit optimization remarks if we are unable to unroll the loop
// as directed by a pragma.
DebugLoc LoopLoc = L->getStartLoc();
@@ -738,6 +733,10 @@ static bool tryToUnrollLoop(Loop *L, DominatorTree &DT, LoopInfo *LI,
TripMultiple, LI, SE, &DT, &AC, PreserveLCSSA))
return false;
+ // If loop has an unroll count pragma mark loop as unrolled to prevent
+ // unrolling beyond that requested by the pragma.
+ if (HasPragma && PragmaCount != 0)
+ SetLoopAlreadyUnrolled(L);
return true;
}
OpenPOWER on IntegriCloud