[PATCH] D47408: [PM/LoopUnswitch] When using the new SimpleLoopUnswitch pass, 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 15:38:15 PDT 2018


chandlerc updated this revision to Diff 148739.
chandlerc retitled this revision from "[PM/LoopUnswitch] Schedule loop-cleanup passes at the beginning of the loop pass pipeline, and re-enqueue loops after even trivial unswitching." to "[PM/LoopUnswitch] When using the new SimpleLoopUnswitch pass, schedule loop-cleanup passes at the beginning of the loop pass pipeline, and re-enqueue loops after even trivial unswitching.".
chandlerc edited the summary of this revision.
chandlerc added reviewers: fedor.sergeev, reames.
chandlerc added a dependency: D47407: [LoopInstSimplify] Re-implement the core logic of loop-instsimplify to be both simpler and substantially more efficient..
chandlerc added a comment.

Rebase and teach the old PM to do this as well when using SimpleLoopUnswitch.

I've also now built a Clang with this and run it over the test suite with both old and new PM and with this unswitch pass enabled. No crashes, no failures.


Repository:
  rL LLVM

https://reviews.llvm.org/D47408

Files:
  llvm/lib/Passes/PassBuilder.cpp
  llvm/lib/Transforms/IPO/PassManagerBuilder.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.148739.patch
Type: text/x-patch
Size: 12700 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180526/00bb4ec7/attachment.bin>


More information about the llvm-commits mailing list