forked from OSchip/llvm-project
619a83463f
This patch adds support of `llvm.experimental.guard` intrinsics to non-trivial simple loop unswitching. These intrinsics represent implicit control flow which has pretty much the same semantics as usual conditional branches. The algorithm of dealing with them is following: - Consider guards as unswitching candidates; - If a guard is considered the best candidate, turn it into a branch; - Apply normal unswitching algorithm on this branch. The patch has no compile time effect on code that does not contain any guards. Differential Revision: https://reviews.llvm.org/D53744 Reviewed By: chandlerc llvm-svn: 345387 |
||
---|---|---|
.. | ||
2006-06-13-SingleEntryPHI.ll | ||
2006-06-27-DeadSwitchCase.ll | ||
2007-05-09-Unreachable.ll | ||
2007-05-09-tl.ll | ||
2007-07-12-ExitDomInfo.ll | ||
2007-07-13-DomInfo.ll | ||
2007-07-18-DomInfo.ll | ||
2007-08-01-Dom.ll | ||
2007-08-01-LCSSA.ll | ||
2007-10-04-DomFrontier.ll | ||
2008-06-02-DomInfo.ll | ||
2008-06-17-DomFrontier.ll | ||
2010-11-18-LCSSA.ll | ||
2011-06-02-CritSwitch.ll | ||
2011-09-26-EHCrash.ll | ||
2012-04-02-IndirectBr.ll | ||
2012-04-30-LoopUnswitch-LPad-Crash.ll | ||
2012-05-20-Phi.ll | ||
2015-09-18-Addrspace.ll | ||
LIV-loop-condtion.ll | ||
basictest.ll | ||
cleanuppad.ll | ||
copy-metadata.ll | ||
crash.ll | ||
delete-dead-blocks.ll | ||
exponential-behavior.ll | ||
formDedicatedAfterTrivial1.ll | ||
formDedicatedAfterTrivial2.ll | ||
formDedicatedAfterTrivial3.ll | ||
guards.ll | ||
infinite-loop.ll | ||
msan.ll | ||
nontrivial-unswitch-cost.ll | ||
nontrivial-unswitch.ll | ||
pr37888.ll | ||
preserve-analyses.ll | ||
trivial-unswitch-iteration.ll | ||
trivial-unswitch.ll | ||
update-scev.ll |