llvm-mirror/lib/Passes
Chandler Carruth 1339761db5 [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.

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 unconditionally updated the new PM as that is always using the
SimpleLoopUnswitch pass, and I've made the pipeline changes for the old
PM conditional on using this new unswitch pass. I added a bunch of
comments to the loop pass pipeline in the old PM to make it more clear
what is going on when reviewing.

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

Differential Revision: https://reviews.llvm.org/D47408

llvm-svn: 333493
2018-05-30 02:46:45 +00:00
..
CMakeLists.txt Re-land r329273: [Plugins] Add a slim plugin API to work together with the new PM 2018-04-05 15:04:13 +00:00
LLVMBuild.txt Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00
PassBuilder.cpp [PM/LoopUnswitch] When using the new SimpleLoopUnswitch pass, schedule 2018-05-30 02:46:45 +00:00
PassPlugin.cpp NFC, Avoid a warning on pointer casting in PassPlugin.cpp 2018-04-30 14:21:28 +00:00
PassRegistry.def Revert 333358 as it's failing on some builders. 2018-05-27 12:54:33 +00:00