llvm-6502/test/Transforms/Reassociate
Shuxin Yang 2d10010649 Implement XOR reassociation. It is based on following rules:
rule 1: (x | c1) ^ c2 => (x & ~c1) ^ (c1^c2),
     only useful when c1=c2
  rule 2: (x & c1) ^ (x & c2) = (x & (c1^c2))
  rule 3: (x | c1) ^ (x | c2) = (x & c3) ^ c3 where c3 = c1 ^ c2
  rule 4: (x | c1) ^ (x & c2) => (x & c3) ^ c1, where c3 = ~c1 ^ c2

 It reduces an application's size (in terms of # of instructions) by 8.9%.
 Reviwed by Pete Cooper. Thanks a lot!

 rdar://13212115  


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178409 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-30 02:15:01 +00:00
..
2002-05-15-AgressiveSubMove.ll
2002-05-15-MissedTree.ll
2002-05-15-SubReassociate2.ll
2002-05-15-SubReassociate.ll
2002-07-09-DominanceProblem.ll
2003-08-12-InfiniteLoop.ll
2005-09-01-ArrayOutOfBounds.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2006-04-27-ReassociateVector.ll
2011-01-26-UseAfterFree.ll
2012-05-08-UndefLeak.ll Stop reassociate from looking through expressions of arbitrary complexity. This 2012-07-26 09:26:40 +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
absorption.ll It is possible for several constants which aren't individually absorbing to 2012-06-13 12:15:56 +00:00
basictest.ll
crash.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 02:33:22 +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
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
mightymul.ll Stop reassociate from looking through expressions of arbitrary complexity. This 2012-07-26 09:26:40 +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 revert r167740 2012-11-13 00:08:49 +00:00
negation.ll
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
otherops.ll
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
repeats.ll Now that Reassociate's LinearizeExprTree can look through arbitrary expression 2012-06-12 14:33:56 +00:00
secondary.ll
shift-factor.ll
shifttest.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
subtest2.ll
subtest.ll
xor_reassoc.ll Implement XOR reassociation. It is based on following rules: 2013-03-30 02:15:01 +00:00