aboutsummaryrefslogtreecommitdiff
path: root/lib/Support/MemoryBuffer.cpp
diff options
context:
space:
mode:
authorShuxin Yang <shuxin.llvm@gmail.com>2013-03-30 02:15:01 +0000
committerShuxin Yang <shuxin.llvm@gmail.com>2013-03-30 02:15:01 +0000
commit2d1001064989b7fa79507816fc17d467fc00a2f2 (patch)
treee3c8439a9ceb4c9c26310700dbfac856be5d2d3b /lib/Support/MemoryBuffer.cpp
parentfd2cd0db97d78e10288bdf0fb915296c68294237 (diff)
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
Diffstat (limited to 'lib/Support/MemoryBuffer.cpp')
0 files changed, 0 insertions, 0 deletions