[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
Wed Jan 18 00:07:11 PST 2017


chandlerc created this revision.
Herald added subscribers: mzolotukhin, mcrosier, mehdi_amini.

We do this by reconstructing the newly added loops after the unroll
completes to avoid threading pass manager details through all the mess
of the unrolling infrastructure.

I've enabled some extra assertions in the LPM to try and catch issues
here and enabled a bunch of unroller tests to try and make sure this is
sane.

Currently, I'm manually running loop-simplify when needed. That should
go away once it is folded into the LPM infrastructure.


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/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.84803.patch
Type: text/x-patch
Size: 14756 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170118/38120d64/attachment.bin>


More information about the llvm-commits mailing list