diff options
author | David L Kreitzer <david.l.kreitzer@intel.com> | 2016-03-25 14:24:52 +0000 |
---|---|---|
committer | David L Kreitzer <david.l.kreitzer@intel.com> | 2016-03-25 14:24:52 +0000 |
commit | 8d441eb936fa819d781f985ced1571a6a541710f (patch) | |
tree | e200a614bc4fc135739e8eebf1f6bc00ab5338af /llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp | |
parent | ddca355fe3b93b02b3556ad52b3bd8432dcf0a4c (diff) | |
download | bcm5719-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.cpp | 9 |
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; } |