1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01: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 [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
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
2011-11-18-TwoSwitches-Threshold.ll
2011-11-18-TwoSwitches.ll
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
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 [LoopUnswitch] Improve loop unswitch pass to find trivial unswitch conditions more effectively 2015-07-25 03:21:06 +00:00