]> granicus.if.org Git - llvm/commit
[PM] Teach the LoopPassManager to automatically canonicalize loops by
authorChandler Carruth <chandlerc@gmail.com>
Tue, 17 Jan 2017 19:18:12 +0000 (19:18 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Tue, 17 Jan 2017 19:18:12 +0000 (19:18 +0000)
commit1c28b57b8b1d50245e7b0e90b08352e971c41c30
tree6c448b5a3c0b865e4f34b1389d3c2e1168e8d942
parent3ecd20b357efeeb877c5f60e7bfeee22cd4266c9
[PM] Teach the LoopPassManager to automatically canonicalize loops by
runnig LCSSA over them prior to running the loop pipeline.

This also teaches the loop PM to verify that LCSSA form is preserved
throughout the pipeline's run across the loop nest.

Most of the test updates just leverage this new functionality. One has to be
relaxed with the new PM as IVUsers is less powerful when it sees LCSSA input.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292241 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Transforms/Scalar/LoopPassManager.h
test/Analysis/IVUsers/quadradic-exit-value.ll
test/Other/new-pass-manager.ll
test/Transforms/LICM/atomics.ll
test/Transforms/LICM/constexpr.ll
test/Transforms/LICM/hoist-nounwind.ll
test/Transforms/LICM/hoisting.ll