LCSSA should be performed on the outermost affected loop while unrolling loop.
authorDinesh Dwivedi <dinesh.d@samsung.com>
Thu, 29 May 2014 06:47:23 +0000 (06:47 +0000)
committerDinesh Dwivedi <dinesh.d@samsung.com>
Thu, 29 May 2014 06:47:23 +0000 (06:47 +0000)
commit2a747bf1c566cbe9739f2a687bc093fdd5cfeda0
treec88862f72922d4216c23484790ee58cbe3ac4606
parented0e90576d3e0b4796aa7825320cf4d41745f81e
LCSSA should be performed on the outermost affected loop while unrolling loop.

During loop-unroll, loop exits from the current loop may end up in in different
outer loop. This requires to re-form LCSSA recursively for one level down from
the outer most loop where loop exits are landed during unroll. This fixes PR18861.

Differential Revision: http://reviews.llvm.org/D2976

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209796 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Utils/LoopUnroll.cpp
test/Transforms/LoopUnroll/pr18861.ll [new file with mode: 0644]