forked from OSchip/llvm-project
b8a330c42a
This algorithm (explained more in the source code) takes into account global redundancies by building a "pair map" to find common subexprs. The primary motivation of this is to handle situations like foo = (a * b) * c bar = (a * d) * c where we currently don't identify that "a * c" is redundant. Accordingly, it prioritizes the emission of a * c so that CSE can remove the redundant calculation later. Does not change the actual reassociation algorithm -- only the order in which the reassociated operand chain is reconstructed. Gives ~1.5% floating point math instruction count reduction on a large offline suite of graphics shaders. llvm-svn: 320515 |
||
---|---|---|
.. | ||
2002-05-15-AgressiveSubMove.ll | ||
2002-05-15-MissedTree.ll | ||
2002-05-15-SubReassociate.ll | ||
2002-07-09-DominanceProblem.ll | ||
2003-08-12-InfiniteLoop.ll | ||
2005-09-01-ArrayOutOfBounds.ll | ||
2006-04-27-ReassociateVector.ll | ||
2011-01-26-UseAfterFree.ll | ||
2012-05-08-UndefLeak.ll | ||
2012-06-08-InfiniteLoop.ll | ||
absorption.ll | ||
add_across_block_crash.ll | ||
basictest.ll | ||
canonicalize-neg-const.ll | ||
commute.ll | ||
crash.ll | ||
crash2.ll | ||
deadcode.ll | ||
erase_inst_made_change.ll | ||
factorize-again.ll | ||
fast-AgressiveSubMove.ll | ||
fast-ArrayOutOfBounds.ll | ||
fast-MissedTree.ll | ||
fast-ReassociateVector.ll | ||
fast-SubReassociate.ll | ||
fast-basictest.ll | ||
fast-fp-commute.ll | ||
fast-mightymul.ll | ||
fast-multistep.ll | ||
fp-commute.ll | ||
fp-expr.ll | ||
inverses.ll | ||
keep-debug-loc.ll | ||
looptest.ll | ||
mightymul.ll | ||
min_int.ll | ||
mixed-fast-nonfast-fp.ll | ||
mulfactor.ll | ||
multistep.ll | ||
negation.ll | ||
negation1.ll | ||
no-op.ll | ||
optional-flags.ll | ||
otherops.ll | ||
pr12245.ll | ||
pr21205.ll | ||
pr28367.ll | ||
propagate-flags.ll | ||
reassoc-intermediate-fnegs.ll | ||
reassociate-deadinst.ll | ||
repeats.ll | ||
secondary.ll | ||
shift-factor.ll | ||
shifttest.ll | ||
subtest.ll | ||
vaarg_movable.ll | ||
wrap-flags.ll | ||
xor_reassoc.ll |