llvm-6502/test/Transforms
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
..
ADCE
ArgumentPromotion Update some EH tests that were violating the new EH model. 2013-03-21 18:30:10 +00:00
BBVectorize Modify the LLVM assembly output so that it uses references to represent function attributes. 2013-02-20 07:21:42 +00:00
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare
ConstantMerge
ConstProp Remove this testcase until I can figure out how to properly conditionalize it. 2013-02-07 07:01:54 +00:00
CorrelatedValuePropagation CVP: If we have a PHI with an incoming select, try to skip the select. 2013-02-24 15:34:43 +00:00
DeadArgElim Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
DeadStoreElimination Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
EarlyCSE Initially forgotten-to-svn-add test case for r177279. 2013-03-18 12:07:24 +00:00
FunctionAttrs Move library call prototype attribute inference to functionattrs 2013-03-21 00:55:59 +00:00
GCOVProfiling Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
GlobalDCE
GlobalOpt Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
GVN Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
IndVarSimplify IndVarSimplify: do not recompute an IV value outside of the loop if : 2013-03-19 20:00:22 +00:00
Inline Update test. There may be multiple catches, but those will be cleaned up. 2013-03-22 20:36:39 +00:00
InstCombine Remove -O3. 2013-03-28 19:34:14 +00:00
InstSimplify Check whether a pointer is non-null (isKnownNonNull) in isKnownNonZero. 2013-03-18 21:23:25 +00:00
Internalize
IPConstantProp Use references to attribute groups on the call/invoke instructions. 2013-02-22 09:09:42 +00:00
JumpThreading Use references to attribute groups on the call/invoke instructions. 2013-02-22 09:09:42 +00:00
LCSSA
LICM Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
LoopDeletion Modify the LLVM assembly output so that it uses references to represent function attributes. 2013-02-20 07:21:42 +00:00
LoopIdiom PR14904: Segmentation fault running pass 'Recognize loop idioms' 2013-01-10 23:32:01 +00:00
LoopRotate
LoopSimplify
LoopStrengthReduce LSR IVChain improvement. 2013-02-09 01:11:01 +00:00
LoopUnroll Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
LoopUnswitch Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
LoopVectorize LoopVectorizer: Insert some white space to make test case more readable 2013-03-14 21:31:09 +00:00
LowerAtomic
LowerExpectIntrinsic
LowerInvoke
LowerSwitch
Mem2Reg Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
MemCpyOpt Use references to attribute groups on the call/invoke instructions. 2013-02-22 09:09:42 +00:00
MergeFunc Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
MetaRenamer Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
ObjCARC Updated test0 of retain-not-declared.ll to reflect the fact that objc-arc-expand runs before objc-arc/objc-arc-contract. 2013-03-29 22:44:59 +00:00
PhaseOrdering
PruneEH
Reassociate Implement XOR reassociation. It is based on following rules: 2013-03-30 02:15:01 +00:00
Reg2Mem Make sure we don't emit instructions before a landingpad instruction. 2013-01-08 10:51:32 +00:00
ScalarRepl Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
SCCP Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
SimplifyCFG Don't remove a landing pad if the invoke requires a table entry. 2013-03-11 20:53:00 +00:00
SimplifyLibCalls Move library call prototype attribute inference to functionattrs 2013-03-21 00:55:59 +00:00
Sink
SROA PR14972: SROA vs. GVN exposed a really bad bug in SROA. 2013-03-14 11:32:24 +00:00
StripSymbols Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
TailCallElim Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
TailDup Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00