[LICM] Store sink and indirectbr instructions
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Fri, 28 Nov 2014 19:47:46 +0000 (19:47 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Fri, 28 Nov 2014 19:47:46 +0000 (19:47 +0000)
commit69ed1ff9b3235a864bcdfec3da798edfabd702a7
tree1140e89e17a25e3fd7bb65addef32d299e74b38b
parent04122090c2dc3447cbc612e97b17950f22d2f46e
[LICM] Store sink and indirectbr instructions

Loop simplify skips exit-block insertion when exits contain indirectbr
instructions. This leads to an assertion in LICM when trying to sink
stores out of non-dedicated loop exits containing indirectbr
instructions. This patch fix this issue by re-checking for dedicated
exits in LICM prior to store sink attempts.

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

rdar://problem/18943047

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222927 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/LICM.cpp
test/Transforms/LICM/sinking.ll