llvm/test/Transforms/Reassociate
Duncan Sands 69938a85bd Revert commit 158073 while waiting for a fix. The issue is that reassociate
can move instructions within the instruction list.  If the instruction just
happens to be the one the basic block iterator is pointing to, and it is
moved to a different basic block, then we get into an infinite loop due to
the iterator running off the end of the basic block (for some reason this
doesn't fire any assertions).  Original commit message:

Grab-bag of reassociate tweaks.  Unify handling of dead instructions and
instructions to reoptimize.  Exploit this to more systematically eliminate
dead instructions (this isn't very useful in practice but is convenient for
analysing some testcase I am working on).  No need for WeakVH any more: use
an AssertingVH instead.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158199 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-08 13:37:30 +00:00
..
2002-05-15-AgressiveSubMove.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2002-05-15-MissedTree.ll Use opt -S instead of piping bitcode output through llvm-dis. 2009-09-08 22:34:10 +00:00
2002-05-15-SubReassociate2.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2002-05-15-SubReassociate.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2002-07-09-DominanceProblem.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-08-12-InfiniteLoop.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2005-08-24-Crash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2005-09-01-ArrayOutOfBounds.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2006-04-27-ReassociateVector.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2011-01-26-UseAfterFree.ll Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
2012-05-08-UndefLeak.ll Make the reassociation pass more powerful so that it can handle expressions 2012-05-25 12:03:02 +00:00
2012-06-08-InfiniteLoop.ll Revert commit 158073 while waiting for a fix. The issue is that reassociate 2012-06-08 13:37:30 +00:00
basictest.ll Add a test for my change to disable reassociation for i1 types. 2010-02-06 01:16:25 +00:00
crash.ll Fix reassociate to postpone certain instruction deletions until 2011-03-10 19:51:54 +00:00
fp-commute.ll Grab-bag of reassociate tweaks. Unify handling of dead instructions and 2012-06-06 14:53:10 +00:00
inverses.ll filecheckize 2010-01-18 21:58:32 +00:00
lit.local.cfg Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
looptest.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
mulfactor.ll Teach the reassociate pass to fold chains of multiplies with repeated 2012-04-26 05:30:30 +00:00
multistep.ll Calling ReassociateExpression recursively is extremely dangerous since it will 2012-05-08 12:16:05 +00:00
negation.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
no-op.ll Since commit 157467, if reassociate isn't actually going to change an expression 2012-05-26 16:42:52 +00:00
optional-flags.ll fix PR9215, preventing -reassociate from clearing nsw/nuw when 2011-02-17 01:29:24 +00:00
otherops.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
pr12245.ll The value held in the vector may be RAUW'ed by some of the canonicalization 2012-05-02 09:59:45 +00:00
secondary.ll Fix reassociate to use a worklist instead of recursing when new 2011-04-12 00:11:56 +00:00
shift-factor.ll Convert more tests to avoid llvm-as. 2009-09-11 18:36:27 +00:00
shifttest.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
subtest2.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
subtest.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00