llvm-6502/lib
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
..
Analysis Build fixes for STLPort + GCC 2013-03-29 18:48:45 +00:00
Archive
AsmParser
Bitcode
CodeGen Use SmallVectorImpl instead of SmallVector at the uses. 2013-03-29 23:34:06 +00:00
DebugInfo
ExecutionEngine
IR Revert "Adding DIImportedModules to DIScopes." 2013-03-28 02:44:59 +00:00
IRReader Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
Linker Specutively revert r178130. 2013-03-27 17:54:41 +00:00
MC
Object
Option
Support SmallVector and SmallPtrSet allocations now power-of-two aligned. 2013-03-29 22:07:12 +00:00
TableGen
Target [mips] Add patterns for DSP indexed load instructions. 2013-03-30 02:14:45 +00:00
Transforms Implement XOR reassociation. It is based on following rules: 2013-03-30 02:15:01 +00:00
CMakeLists.txt Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
LLVMBuild.txt Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
Makefile Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00