[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)
commit17350de1cab38961ae3636f01b2bcad4c6d0d278
treef636d3c2a85ff91c3415bf07218adadd08515092
parent2c3771af4eee7de29a82dc8fdb544b88b88ff760
[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

llvm-svn: 292709
llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
llvm/test/Other/new-pass-manager.ll
llvm/test/Other/new-pm-defaults.ll
llvm/test/Transforms/LICM/hoist-bitcast-load.ll
llvm/test/Transforms/LICM/hoist-deref-load.ll
llvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp