llvm-6502/test/Transforms
Andrew Trick 06988bcf6a Made SCEV's UDiv expressions more canonical. When dividing a
recurrence, the initial values low bits can sometimes be ignored.

To take advantage of this, added FoldIVUser to IndVarSimplify to fold
an IV operand into a udiv/lshr if the operator doesn't affect the
result.

-indvars -disable-iv-rewrite now transforms

i = phi i4
i1 = i0 + 1
idx = i1 >> (2 or more)
i4 = i + 4

into

i = phi i4
idx = i0 >> ...
i4 = i + 4


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137013 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-06 07:00:37 +00:00
..
ADCE
ArgumentPromotion
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare
ConstantMerge Teach the ConstantMerge pass about alignment. Fixes PR10514! 2011-07-27 19:47:34 +00:00
ConstProp
CorrelatedValuePropagation
DeadArgElim
DeadStoreElimination
EarlyCSE
FunctionAttrs
GlobalDCE
GlobalOpt
GVN
IndVarSimplify Made SCEV's UDiv expressions more canonical. When dividing a 2011-08-06 07:00:37 +00:00
Inline
InstCombine Fix logical error when detecting lifetime intrinsics. 2011-08-03 00:43:35 +00:00
InstSimplify
Internalize
IPConstantProp
JumpThreading
LCSSA
LICM
LoopDeletion
LoopIdiom
LoopRotate
LoopSimplify SCEV: Use AssertingVH to catch dangling BasicBlock* when passes forget 2011-08-03 18:32:11 +00:00
LoopStrengthReduce LSR, correct fix for rdar://9786536. Silly casting bug. 2011-07-21 01:45:54 +00:00
LoopUnroll
LoopUnswitch
LowerAtomic
LowerExpectIntrinsic
LowerInvoke
LowerSwitch
Mem2Reg
MemCpyOpt
MergeFunc
ObjCARC Move the last uses of RetainFunc etc. over to using getRetainCallee() etc. 2011-07-22 22:29:21 +00:00
PhaseOrdering
PruneEH
Reassociate Remove empty test. 2011-08-02 02:47:45 +00:00
ScalarRepl Finish adding support for lifetime intrinsics to SROA. Fixes PR10121! 2011-07-25 23:14:22 +00:00
SCCP
SimplifyCFG
SimplifyLibCalls
Sink
StripSymbols fix PR10286, a problem with the .ll printer handling block addresses that are out-of-scope. 2011-08-03 06:15:41 +00:00
TailCallElim
TailDup