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