[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