Skip to content
  1. Mar 01, 2011
  2. Feb 26, 2011
    • Benjamin Kramer's avatar
      Add some DAGCombines for (adde 0, 0, glue), which are useful to optimize... · 26691d96
      Benjamin Kramer authored
      Add some DAGCombines for (adde 0, 0, glue), which are useful to optimize legalized code for large integer arithmetic.
      
      1. Inform users of ADDEs with two 0 operands that it never sets carry
      2. Fold other ADDs or ADDCs into the ADDE if possible
      
      It would be neat if we could do the same thing for SETCC+ADD eventually, but we can't do that in target independent code.
      
      llvm-svn: 126557
      26691d96
  3. Feb 21, 2011
  4. Feb 17, 2011
  5. Feb 16, 2011
  6. Feb 06, 2011
  7. Feb 02, 2011
    • Benjamin Kramer's avatar
      SimplifyCFG: Turn switches into sub+icmp+branch if possible. · f4ea1d5f
      Benjamin Kramer authored
      This makes the job of the later optzn passes easier, allowing the vast amount of
      icmp transforms to chew on it.
      
      We transform 840 switches in gcc.c, leading to a 16k byte shrink of the resulting
      binary on i386-linux.
      
      The testcase from README.txt now compiles into
        decl  %edi
        cmpl  $3, %edi
        sbbl  %eax, %eax
        andl  $1, %eax
        ret
      
      llvm-svn: 124724
      f4ea1d5f
  8. Jan 31, 2011
  9. Jan 30, 2011
    • Benjamin Kramer's avatar
      Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x,... · 946e1522
      Benjamin Kramer authored
      Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x, c1+c2) when c1 equals the amount of bits that are truncated off.
      
      This happens all the time when a smul is promoted to a larger type.
      
      On x86-64 we now compile "int test(int x) { return x/10; }" into
        movslq  %edi, %rax
        imulq $1717986919, %rax, %rax
        movq  %rax, %rcx
        shrq  $63, %rcx
        sarq  $34, %rax <- used to be "shrq $32, %rax; sarl $2, %eax"
        addl  %ecx, %eax
      
      This fires 96 times in gcc.c on x86-64.
      
      llvm-svn: 124559
      946e1522
  10. Jan 24, 2011
  11. Jan 23, 2011
  12. Jan 18, 2011
  13. Jan 16, 2011
  14. Jan 13, 2011
  15. Jan 11, 2011
  16. Jan 10, 2011
  17. Jan 09, 2011
  18. Jan 07, 2011
  19. Jan 06, 2011
Loading