hanchenye-llvm-project/llvm/test/Transforms
Benjamin Kramer afdfdb5cff LoopRotate: Also rotate loops with multiple exits.
The old PHI updating code in loop-rotate was replaced with SSAUpdater a while
ago, it has no problems with comples PHIs. What had to be fixed is detecting
whether a loop was already rotated and updating dominators when multiple exits
were present.

This change increases overall code size a bit, mostly due to additional loop
unrolling opportunities. Passes test-suite and selfhost with -verify-dom-info.
Fixes PR7447.

Thanks to Andy for the input on the domtree updating code.

llvm-svn: 162912
2012-08-30 15:39:42 +00:00
..
ADCE
ArgumentPromotion Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
BBVectorize Allow BBVectorize to form non-2^n-length vectors. 2012-06-28 05:42:42 +00:00
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare During the CodeGenPrepare we often lower intrinsics (such as objsize) 2012-08-14 05:19:07 +00:00
ConstProp Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
ConstantMerge
CorrelatedValuePropagation make LazyValueInfo analyze the default case of switch statements (we know that in the default branch the value cannot be any of the switch cases) 2012-06-28 16:13:37 +00:00
DeadArgElim Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
DeadStoreElimination Change greater than to greater than or equal so that an identical sized store to the same offset is treated as completing overwriting. 2012-08-14 07:32:05 +00:00
EarlyCSE
FunctionAttrs Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
GVN Make MemoryBuiltins aware of TargetLibraryInfo. 2012-08-29 15:32:21 +00:00
GlobalDCE
GlobalOpt Add testcases for GlobalOpt changes in r160693 and r160757. 2012-07-29 01:15:37 +00:00
IPConstantProp Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
IndVarSimplify indvars: Linear function test replace should avoid reusing undef. 2012-07-18 04:35:10 +00:00
Inline Fix broken check lines. 2012-08-17 12:28:26 +00:00
InstCombine It is illegal to transform (sdiv (ashr X c1) c2) -> (sdiv x (2^c1 * c2)), 2012-08-30 11:23:20 +00:00
InstSimplify Revert r153521 as it's causing large regressions on the nightly testers. 2012-03-28 18:42:50 +00:00
Internalize
JumpThreading Fix assertion in jump threading (PR13405). 2012-07-20 10:36:17 +00:00
LCSSA Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
LICM Avoid recomputing the unique exit blocks and their insert points when doing 2012-08-08 00:00:26 +00:00
LoopDeletion
LoopIdiom
LoopRotate LoopRotate: Also rotate loops with multiple exits. 2012-08-30 15:39:42 +00:00
LoopSimplify Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
LoopStrengthReduce During the CodeGenPrepare we often lower intrinsics (such as objsize) 2012-08-14 05:19:07 +00:00
LoopUnroll Fix 12513: Loop unrolling breaks with indirect branches. 2012-04-10 05:14:42 +00:00
LoopUnswitch Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
LowerAtomic
LowerExpectIntrinsic
LowerInvoke
LowerSwitch PR1255 related changes (case ranges): 2012-05-24 09:33:20 +00:00
Mem2Reg
MemCpyOpt Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
MergeFunc Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
ObjCARC Fix broken check lines. 2012-08-17 12:28:26 +00:00
PhaseOrdering Reapply r155136 after fixing PR12599. 2012-04-23 17:39:52 +00:00
PruneEH The normal edge of an invoke is not allowed to branch to a block with a 2012-08-10 20:55:20 +00:00
Reassociate Stop reassociate from looking through expressions of arbitrary complexity. This 2012-07-26 09:26:40 +00:00
SCCP Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
ScalarRepl Port the global copy optimization from the SROA pass to InstCombine. 2012-08-21 08:39:44 +00:00
SimplifyCFG The normal edge of an invoke is not allowed to branch to a block with a 2012-08-10 20:55:20 +00:00
SimplifyLibCalls SimplifyLibCalls: Give all safely-shrinkable libcalls the same treatment. 2012-08-22 19:39:15 +00:00
Sink Enhance the sinking code to handle diamond patterns. Patch by 2012-05-31 08:09:49 +00:00
StripSymbols
TailCallElim Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
TailDup Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00