Go to file
Shuxin Yang 7b0c94e207 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  

llvm-svn: 178409
2013-03-30 02:15:01 +00:00
clang [analyzer] Restructure ExprEngine::VisitCXXNewExpr to do a bit less work. 2013-03-30 01:31:48 +00:00
clang-tools-extra modularize - Fixed broken array use (asserted in tests). Renamed KindType enum. 2013-03-28 18:38:43 +00:00
compiler-rt [tsan] restore performance critical inlining in tsan: remove static from ALWAYS_INLINE, use ALWAYS_INLINE USED for critical functions. 2013-03-29 09:44:16 +00:00
debuginfo-tests Remove IR scenario tests. 2013-03-15 20:52:10 +00:00
libclc Update the copyright coredits -- Happy new year 2013! 2013-01-01 10:00:19 +00:00
libcxx Test case was forming the wrong limits when size_t != unsigned long. 2013-03-29 21:22:22 +00:00
libcxxabi Bruce Mitchener: Typo fixes. 2013-02-15 15:48:49 +00:00
lld [ELF] Add dynamic hash table and get simple dynamic libraries working with Hexagon 2013-03-29 00:53:25 +00:00
lldb Disable warnings from Clang correctly, by directly 2013-03-30 01:26:06 +00:00
llvm Implement XOR reassociation. It is based on following rules: 2013-03-30 02:15:01 +00:00
polly RegisterPasses: Improve comments 2013-03-23 21:35:52 +00:00