[PATCH] D47408: [PM/LoopUnswitch] Schedule loop-cleanup passes at the beginning of the loop pass pipeline, and re-enqueue loops after even trivial unswitching.

Chandler Carruth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat May 26 04:24:32 PDT 2018


chandlerc created this revision.
chandlerc added reviewers: asbirlea, sanjoy.
Herald added subscribers: hiraditya, eraman, mcrosier, mehdi_amini.

This will allow us to much more consistently avoid simplifying code
while doing trivial unswitching. I've also added a test case that
specifically shows effective iteration using this technique.

I've only really updated the new PM here as we're not using
SimpleLoopUnswitch in the legacy PM.

Hopefully this will unblock doing *partial* unswitching instead of just
full unswitching.


Repository:
  rL LLVM

https://reviews.llvm.org/D47408

Files:
  llvm/lib/Passes/PassBuilder.cpp
  llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
  llvm/test/Other/new-pm-defaults.ll
  llvm/test/Other/new-pm-thinlto-defaults.ll
  llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch-iteration.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D47408.148712.patch
Type: text/x-patch
Size: 9698 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180526/d348cb80/attachment.bin>


More information about the llvm-commits mailing list