forked from OSchip/llvm-project
6e1f7bf316
Phi nodes can reside in live blocks but one of their incoming arguments can come from a dead block. Dead blocks and reassociate don't play nice together. In fact, reassociate performs an RPO as a first step to avoid processing dead blocks. The reason why Reassociate might not fixpoint when examining dead blocks is that the following: %xor0 = xor i16 %xor1, undef %xor1 = xor i16 %xor0, undef is perfectly valid LLVM IR (if it appears in a dead block), so the worklist algorithm keeps pushing the two instructions for reexamination. Note that this is not Reassociate fault, at least not entirely. It's llvm that has a weird definition of dominance. Fixes PR37390. llvm-svn: 332100 |
||
---|---|---|
.. | ||
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 | ||
infloop-deadphi.ll | ||
inverses.ll | ||
keep-debug-loc.ll | ||
long-chains.ll | ||
looptest.ll | ||
matching-binops.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 | ||
reassociate_dbgvalue_discard.ll | ||
repeats.ll | ||
secondary.ll | ||
shift-factor.ll | ||
shifttest.ll | ||
subtest.ll | ||
vaarg_movable.ll | ||
wrap-flags.ll | ||
xor_reassoc.ll |