[LoopInterchange] Move PHI handling to adjustLoopBranches.
authorFlorian Hahn <florian.hahn@arm.com>
Tue, 19 Jun 2018 08:03:24 +0000 (08:03 +0000)
committerFlorian Hahn <florian.hahn@arm.com>
Tue, 19 Jun 2018 08:03:24 +0000 (08:03 +0000)
commitd8fcf0de3110042a715c482aba523fa61ddfebb2
tree421870e9cb663f2cfb70cd770390f74f7f481efc
parentbd8ed2dbaa85bd11144b422492b68837002c8668
[LoopInterchange] Move PHI handling to adjustLoopBranches.

This patch moves the logic to handle reduction PHI nodes to the end of
adjustLoopBranches. Reduction PHI nodes in the outer loop header can be
moved to the inner loop header and reduction PHI nodes from the inner loop
header can be moved to the outer loop header. In the latter situation,
we have to deal with 1 kind of PHI nodes:

    PHI nodes that are part of inner loop-only reductions.

We can replace the PHI node with the value coming from outside
the inner loop.

Reviewers: mcrosier, efriedma, karthikthecool

Reviewed By: efriedma

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

llvm-svn: 335027
llvm/lib/Transforms/Scalar/LoopInterchange.cpp