[PATCH] D28848: [PM] Teach LoopUnroll to update the LPM infrastructure as it unrolls loops.
Chandler Carruth via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 19 03:33:53 PST 2017
chandlerc updated this revision to Diff 84953.
chandlerc added a comment.
Add some detailed comments about what is happening here. After a long
discussion with Mikhail Zolotukhin on IRC, we're both pretty sure this is in
fact the correct logic, but it is sufficiently non-obvious to be worth walking
the reader through with some precision.
Also, I've added a test case that *specifically* triggers the interesting cases
here and checks that we visit the expected loops after both full and partial
unrolling.
I tried to add a test case for loop peeling but currently we don't have any
support for peeling an outer loop.
https://reviews.llvm.org/D28848
Files:
lib/Transforms/Scalar/LoopPassManager.cpp
lib/Transforms/Scalar/LoopUnrollPass.cpp
test/Transforms/LoopUnroll/basic.ll
test/Transforms/LoopUnroll/full-unroll-bad-cost.ll
test/Transforms/LoopUnroll/full-unroll-crashers.ll
test/Transforms/LoopUnroll/full-unroll-heuristics-2.ll
test/Transforms/LoopUnroll/full-unroll-heuristics-cmp.ll
test/Transforms/LoopUnroll/full-unroll-heuristics-dce.ll
test/Transforms/LoopUnroll/full-unroll-heuristics-geps.ll
test/Transforms/LoopUnroll/full-unroll-heuristics-phi-prop.ll
test/Transforms/LoopUnroll/full-unroll-keep-first-exit.ll
test/Transforms/LoopUnroll/revisit.ll
test/Transforms/LoopUnroll/runtime-loop.ll
test/Transforms/LoopUnroll/runtime-loop1.ll
test/Transforms/LoopUnroll/runtime-loop2.ll
test/Transforms/LoopUnroll/runtime-loop3.ll
test/Transforms/LoopUnroll/runtime-loop5.ll
test/Transforms/LoopUnroll/unloop.ll
test/Transforms/LoopUnroll/update-loop-info-in-subloops.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D28848.84953.patch
Type: text/x-patch
Size: 22213 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170119/eb5140f6/attachment-0001.bin>
More information about the llvm-commits
mailing list