diff options
author | Serguei Katkov <serguei.katkov@azul.com> | 2019-08-22 10:06:46 +0000 |
---|---|---|
committer | Serguei Katkov <serguei.katkov@azul.com> | 2019-08-22 10:06:46 +0000 |
commit | 036e636aa7fc6d367ac19197936f3320f28214b0 (patch) | |
tree | 8348f329b6b0433ba45f5716b6ce1773e597c922 /llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp | |
parent | cd53ff6c0df5f75c4c15abffa18755a8768fc6b3 (diff) | |
download | bcm5719-llvm-036e636aa7fc6d367ac19197936f3320f28214b0.tar.gz bcm5719-llvm-036e636aa7fc6d367ac19197936f3320f28214b0.zip |
[Loop Peeling] Fix silly bug in metadata update.
We must update loop metedata before we moved to parent loop if
it is present.
llvm-svn: 369637
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp b/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp index 3fad421f58f..58e42074f96 100644 --- a/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp +++ b/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp @@ -741,6 +741,12 @@ bool llvm::peelLoop(Loop *L, unsigned PeelCount, LoopInfo *LI, fixupBranchWeights(Header, LatchBR, ExitWeight, FallThroughWeight); + // Update Metadata for count of peeled off iterations. + unsigned AlreadyPeeled = 0; + if (auto Peeled = getOptionalIntLoopAttribute(L, PeeledCountMetaData)) + AlreadyPeeled = *Peeled; + addStringMetadataToLoop(L, PeeledCountMetaData, AlreadyPeeled + PeelCount); + if (Loop *ParentLoop = L->getParentLoop()) L = ParentLoop; @@ -755,11 +761,5 @@ bool llvm::peelLoop(Loop *L, unsigned PeelCount, LoopInfo *LI, NumPeeled++; - // Update Metadata for count of peeled off iterations. - unsigned AlreadyPeeled = 0; - if (auto Peeled = getOptionalIntLoopAttribute(L, PeeledCountMetaData)) - AlreadyPeeled = *Peeled; - addStringMetadataToLoop(L, PeeledCountMetaData, AlreadyPeeled + PeelCount); - return true; } |