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)
commitd266cb1a0b98d67d4d6d9ab5cc0897bfde48d61e
treeca2f69c9647dbcf69d6feda2191ed4dde0989ce6
parent31234844ef002f718d5ab3588535e12ac53819d4
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

llvm-svn: 209796
llvm/lib/Transforms/Utils/LoopUnroll.cpp
llvm/test/Transforms/LoopUnroll/pr18861.ll [new file with mode: 0644]