llvm-6502/test/Transforms
Chandler Carruth 464bda3a16 Teach the reassociate pass to fold chains of multiplies with repeated
elements to minimize the number of multiplies required to compute the
final result. This uses a heuristic to attempt to form near-optimal
binary exponentiation-style multiply chains. While there are some cases
it misses, it seems to at least a decent job on a very diverse range of
inputs.

Initial benchmarks show no interesting regressions, and an 8%
improvement on SPASS. Let me know if any other interesting results (in
either direction) crop up!

Credit to Richard Smith for the core algorithm, and helping code the
patch itself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155616 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-26 05:30:30 +00:00
..
ADCE
ArgumentPromotion
BBVectorize Fix an error in BBVectorize important for vectorizing pointer types. 2012-04-14 07:32:50 +00:00
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare
ConstantMerge
ConstProp
CorrelatedValuePropagation
DeadArgElim
DeadStoreElimination
EarlyCSE
FunctionAttrs
GlobalDCE
GlobalOpt Fix a crash on valid (if UB) bitcode that is produced for some global 2012-04-24 18:42:47 +00:00
GVN
IndVarSimplify
Inline
InstCombine Actually delete now-empty file. 2012-04-25 02:30:00 +00:00
InstSimplify
Internalize
IPConstantProp
JumpThreading
LCSSA
LICM
LoopDeletion
LoopIdiom
LoopRotate
LoopSimplify
LoopStrengthReduce Flip the new block-placement pass to be on by default. 2012-04-16 13:49:17 +00:00
LoopUnroll
LoopUnswitch
LowerAtomic
LowerExpectIntrinsic
LowerInvoke
LowerSwitch
Mem2Reg
MemCpyOpt
MergeFunc
ObjCARC Avoid a bug in the path count computation, preventing an infinite 2012-04-19 21:50:46 +00:00
PhaseOrdering Reapply r155136 after fixing PR12599. 2012-04-23 17:39:52 +00:00
PruneEH
Reassociate Teach the reassociate pass to fold chains of multiplies with repeated 2012-04-26 05:30:30 +00:00
ScalarRepl
SCCP
SimplifyCFG
SimplifyLibCalls FileCheckify, un-XFAIL SimplifyLibCalls/floor test 2012-04-18 00:36:07 +00:00
Sink
StripSymbols
TailCallElim
TailDup