Skip to content
  1. Nov 28, 2004
  2. Nov 27, 2004
  3. Nov 26, 2004
  4. Nov 22, 2004
  5. Nov 19, 2004
  6. Nov 18, 2004
  7. Nov 16, 2004
  8. Nov 15, 2004
  9. Nov 14, 2004
  10. Nov 13, 2004
    • Chris Lattner's avatar
      Simplify handling of shifts to be the same as we do for adds. Add support · 8c3e7b92
      Chris Lattner authored
      for (X * C1) + (X * C2) (where * can be mul or shl), allowing us to fold:
      
         Y+Y+Y+Y+Y+Y+Y+Y
      
      into
               %tmp.8 = shl long %Y, ubyte 3           ; <long> [#uses=1]
      
      instead of
      
              %tmp.4 = shl long %Y, ubyte 2           ; <long> [#uses=1]
              %tmp.12 = shl long %Y, ubyte 2          ; <long> [#uses=1]
              %tmp.8 = add long %tmp.4, %tmp.12               ; <long> [#uses=1]
      
      This implements add.ll:test25
      
      Also add support for (X*C1)-(X*C2) -> X*(C1-C2), implementing sub.ll:test18
      
      llvm-svn: 17704
      8c3e7b92
    • Chris Lattner's avatar
      Fold: · 4efe20a1
      Chris Lattner authored
         (X + (X << C2)) --> X * ((1 << C2) + 1)
         ((X << C2) + X) --> X * ((1 << C2) + 1)
      
      This means that we now canonicalize "Y+Y+Y" into:
      
              %tmp.2 = mul long %Y, 3         ; <long> [#uses=1]
      
      instead of:
      
              %tmp.10 = shl long %Y, ubyte 1          ; <long> [#uses=1]
              %tmp.6 = add long %Y, %tmp.10               ; <long> [#uses=1]
      
      llvm-svn: 17701
      4efe20a1
    • Chris Lattner's avatar
      Lazily create the abort message, so only translation units that use unwind · 2858e175
      Chris Lattner authored
      will actually get it.
      
      llvm-svn: 17700
      2858e175
  11. Nov 12, 2004
  12. Nov 07, 2004
  13. Nov 05, 2004
  14. Nov 02, 2004
    • Chris Lattner's avatar
      * Rearrange code slightly · 96f66164
      Chris Lattner authored
      * Disable broken transforms for simplifying (setcc (cast X to larger), CI)
        where CC is not != or ==
      
      llvm-svn: 17422
      96f66164
  15. Nov 01, 2004
    • Chris Lattner's avatar
      Speed up the tail duplication pass on the testcase below from 68.2s to 1.23s: · 8af74249
      Chris Lattner authored
      #define CL0(a) case a: f(); goto c;
       #define CL1(a) CL0(a##0) CL0(a##1) CL0(a##2) CL0(a##3) CL0(a##4) CL0(a##5) \
       CL0(a##6) CL0(a##7) CL0(a##8) CL0(a##9)
       #define CL2(a) CL1(a##0) CL1(a##1) CL1(a##2) CL1(a##3) CL1(a##4) CL1(a##5) \
       CL1(a##6) CL1(a##7) CL1(a##8) CL1(a##9)
       #define CL3(a) CL2(a##0) CL2(a##1) CL2(a##2) CL2(a##3) CL2(a##4) CL2(a##5) \
       CL2(a##6) CL2(a##7) CL2(a##8) CL2(a##9)
       #define CL4(a) CL3(a##0) CL3(a##1) CL3(a##2) CL3(a##3) CL3(a##4) CL3(a##5) \
       CL3(a##6) CL3(a##7) CL3(a##8) CL3(a##9)
      
       void f();
      
       void a() {
           int b;
        c: switch (b) {
               CL4(1)
           }
       }
      
      This comes from GCC PR 15524
      
      llvm-svn: 17390
      8af74249
  16. Oct 28, 2004
  17. Oct 27, 2004
  18. Oct 25, 2004
  19. Oct 22, 2004
  20. Oct 19, 2004
  21. Oct 18, 2004
    • Nate Begeman's avatar
      Initial implementation of the strength reduction for GEP instructions in · b18121e6
      Nate Begeman authored
      loops.  This optimization is not turned on by default yet, but may be run
      with the opt tool's -loop-reduce flag.  There are many FIXMEs listed in the
      code that will make it far more applicable to a wide range of code, but you
      have to start somewhere :)
      
      This limited version currently triggers on the following tests in the
      MultiSource directory:
      pcompress2: 7 times
      cfrac: 5 times
      anagram: 2 times
      ks: 6 times
      yacr2: 2 times
      
      llvm-svn: 17134
      b18121e6
Loading