llvm-project/llvm/test/Transforms/LoopDeletion
Max Kazantsev 9c5e65691e [LoopDeletion] Handle switch in proving that loop exits on first iteration
Added check for switch-terminated blocks in loops.
Now if a block is terminated with a switch, we try to find out which of the
cases is taken on 1st iteration and mark corresponding edge from the block
to the case successor as live.

Patch by Dmitry Makogon!

Differential Revision: https://reviews.llvm.org/D105688
Reviewed By: nikic, mkazantsev
2021-07-09 18:03:34 +07:00
..
2007-07-23-InfiniteLoop.ll
2008-05-06-Phi.ll [SimplifyCFG] Teach simplifyUnreachable() to preserve DomTree 2020-12-18 00:37:22 +03:00
2011-06-21-phioperands.ll
2017-07-11-incremental-dt.ll Revert "[LoopDeletion] Allows deletion of possibly infinite side-effect free loops" 2020-11-07 00:32:12 -05:00
assume.ll
basic-remark.ll Revert "[LoopDeletion] Allows deletion of possibly infinite side-effect free loops" 2020-11-07 00:32:12 -05:00
crashbc.ll
dcetest.ll [SimplifyCFG] TryToSimplifyUncondBranchFromEmptyBlock() already knows how to preserve DomTree 2020-12-17 01:03:49 +03:00
diundef.ll Revert "[LoopDeletion] Allows deletion of possibly infinite side-effect free loops" 2020-11-07 00:32:12 -05:00
eval_first_iteration.ll [LoopDeletion] Handle switch in proving that loop exits on first iteration 2021-07-09 18:03:34 +07:00
invalidation.ll Revert "[LoopDeletion] Allows deletion of possibly infinite side-effect free loops" 2020-11-07 00:32:12 -05:00
irreducible-cfg.ll [Test] Add one more loop deletion irreducible CFG test 2021-06-01 11:11:15 +07:00
loops-with-irreducible-subloops.ll [LoopDeletion] Check for irreducible cycles when deleting loops. 2021-06-15 12:56:12 +01:00
multiple-exit-conditions.ll Revert "[LoopDeletion] Allows deletion of possibly infinite side-effect free loops" 2020-11-07 00:32:12 -05:00
multiple-exits.ll Revert "[LoopDeletion] Allows deletion of possibly infinite side-effect free loops" 2020-11-07 00:32:12 -05:00
mustprogress.ll [LoopDeletion] Allows deletion of possibly infinite side-effect free loops 2021-01-05 09:56:16 -05:00
no-exit-blocks.ll [LoopDeletion] Allows deletion of possibly infinite side-effect free loops 2021-01-05 09:56:16 -05:00
noop-loops-with-subloops.ll [LoopDeletion] Consider infinite loops alive, unless mustprogress. 2021-06-01 13:07:36 +01:00
pr49967.ll [LoopDeletion] Add test for PR49967 (NFC) 2021-04-18 22:08:51 +02:00
simplify-then-delete.ll [SimplifyCFG] Teach SimplifyCondBranchToTwoReturns() to preserve DomTree, part 1 2020-12-20 00:18:35 +03:00
two-predecessors.ll [LoopDeletion] Require loop to have a predecessor when executing 1st iteration symbolically 2021-06-22 12:20:55 +07:00
unreachable-loops.ll [LoopDeletion] Break backedge if we can prove that the loop is exited on 1st iteration (try 3) 2021-06-18 17:31:57 +07:00
update-scev.ll [LoopDeletion] Break backedge of outermost loops when known not taken 2021-01-10 16:02:33 -08:00
use-in-unreachable.ll Revert "[LoopDeletion] Allows deletion of possibly infinite side-effect free loops" 2020-11-07 00:32:12 -05:00
zero-btc.ll [LoopDeletion] Break backedge if we can prove that the loop is exited on 1st iteration (try 3) 2021-06-18 17:31:57 +07:00