[SimpleLoopUnswitch] After unswitch delete dead blocks in parent loops
authorFedor Sergeev <fedor.sergeev@azul.com>
Wed, 29 Aug 2018 19:10:44 +0000 (19:10 +0000)
committerFedor Sergeev <fedor.sergeev@azul.com>
Wed, 29 Aug 2018 19:10:44 +0000 (19:10 +0000)
commit7b49aa03af9877ede00a100c6b178414e2f8656d
tree4dfde49be225ff4961d62462ec1088baba3d60ea
parentcf311cfc20a363ba1ee1a8115ab307d6745a6b73
[SimpleLoopUnswitch] After unswitch delete dead blocks in parent loops

Summary:
Assert from PR38737 happens on the dead block inside the parent loop
after unswitching nontrivial switch in the inner loop.

deleteDeadBlocksFromLoop now takes extra care to detect/remove dead
blocks in all the parent loops in addition to the blocks from original
loop being unswitched.

Reviewers: asbirlea, chandlerc

Reviewed By: asbirlea

Subscribers: llvm-commits

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

llvm-svn: 340955
llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
llvm/test/Transforms/SimpleLoopUnswitch/delete-dead-blocks.ll [new file with mode: 0644]