1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/test/Transforms/LoopUnswitch
Abhilash Bhandari 7cab062130 [Loop Unswitch] Patch to selective unswitch only the reachable branch instructions.
Summary:
The iterative algorithm for Loop Unswitching may render some of the branches unreachable in the unswitched loops.
Given the exponential nature of the algorithm, this is quite an overhead.
This patch fixes this problem by selectively unswitching only those branches within a loop that are reachable from the loop header.

Reviewers: Michael Zolothukin, Anna Thomas, Weiming Zhao.
Subscribers: llvm-commits.

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

llvm-svn: 287925
2016-11-25 14:07:44 +00:00
..
2006-06-13-SingleEntryPHI.ll
2006-06-27-DeadSwitchCase.ll
2007-05-09-tl.ll
2007-05-09-Unreachable.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
2008-11-03-Invariant.ll
2010-11-18-LCSSA.ll
2011-06-02-CritSwitch.ll
2011-09-26-EHCrash.ll Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
2011-11-18-SimpleSwitch.ll Have a single way for creating unique value names. 2015-11-22 00:16:24 +00:00
2011-11-18-TwoSwitches-Threshold.ll
2011-11-18-TwoSwitches.ll Have a single way for creating unique value names. 2015-11-22 00:16:24 +00:00
2012-04-02-IndirectBr.ll
2012-04-30-LoopUnswitch-LPad-Crash.ll
2012-05-20-Phi.ll
2015-06-17-Metadata.ll [SimlifyCFG] Prevent passes from destroying canonical loop structure, especially for nested loops 2016-03-29 04:08:57 +00:00
2015-09-18-Addrspace.ll
basictest.ll
cleanuppad.ll [IR] Reformulate LLVM's EH funclet IR 2015-12-12 05:38:55 +00:00
cold-loop.ll
copy-metadata.ll
crash.ll
elseif-non-exponential-behavior.ll [Loop Unswitch] Patch to selective unswitch only the reachable branch instructions. 2016-11-25 14:07:44 +00:00
exponential-behavior.ll [LoopUnswitch] Avoid exponential behavior 2016-06-25 01:14:19 +00:00
guards.ll [LoopUnswitch] Unswitch on conditions feeding into guards 2016-06-26 05:10:45 +00:00
infinite-loop.ll [SimlifyCFG] Prevent passes from destroying canonical loop structure, especially for nested loops 2016-03-29 04:08:57 +00:00
LIV-loop-condtion.ll
msan.ll Add a missing test. 2016-06-14 21:24:13 +00:00
preserve-analyses.ll
trivial-unswitch.ll