Skip to content
  1. Dec 14, 2012
  2. Oct 08, 2012
  3. Aug 19, 2012
  4. Jul 23, 2012
  5. Jun 23, 2012
  6. Apr 12, 2012
  7. Mar 28, 2012
  8. Sep 08, 2011
  9. Jul 14, 2011
  10. Jun 13, 2011
  11. May 23, 2011
  12. May 22, 2011
  13. Apr 26, 2011
  14. Apr 25, 2011
  15. Apr 22, 2011
  16. Apr 14, 2011
  17. Mar 25, 2011
  18. Mar 22, 2011
  19. Mar 21, 2011
  20. Mar 01, 2011
  21. 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
  22. Feb 21, 2011
  23. Feb 17, 2011
  24. Feb 16, 2011
  25. Feb 06, 2011
  26. 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
  27. Jan 31, 2011
  28. 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
  29. Jan 24, 2011
  30. Jan 23, 2011
Loading