]> granicus.if.org Git - llvm/commit
[PM] Teach the loop PM to run LoopSimplify prior to the loop pipeline.
authorChandler Carruth <chandlerc@gmail.com>
Sat, 21 Jan 2017 03:48:51 +0000 (03:48 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sat, 21 Jan 2017 03:48:51 +0000 (03:48 +0000)
commit3710416022c2a00403c7e0d95ed72a2c5651d13d
tree2de5f0d36538e5b1a6e0b88659ac02447a4a60ad
parent4c5684d092d34bb9d63803ce8fd6c57372b08cb7
[PM] Teach the loop PM to run LoopSimplify prior to the loop pipeline.

This adds the last remaining core feature of the loop pass pipeline in
the new PM and removes the last of the really egregious hacks in the
LICM tests.

Sadly, this requires really substantial changes in the unittests in
order to provide and maintain simplified loops. This is particularly
hard because for example LoopSimplify will try to fold undef branches to
an ideal direction and simplify the loop accordingly.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292709 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Transforms/Scalar/LoopPassManager.h
test/Other/new-pass-manager.ll
test/Other/new-pm-defaults.ll
test/Transforms/LICM/hoist-bitcast-load.ll
test/Transforms/LICM/hoist-deref-load.ll
unittests/Transforms/Scalar/LoopPassManagerTest.cpp