Skip to content
  1. Feb 04, 2006
    • Chris Lattner's avatar
      Fix two significant bugs in LSR: · 2959f000
      Chris Lattner authored
      1. When rewriting code in outer loops, sometimes we would insert code into
         inner loops that is invariant in that loop.
      2. Notice that 4*(2+x) is 8+4*x and use that to simplify expressions.
      
      This is a performance neutral change.
      
      llvm-svn: 25964
      2959f000
  2. Jan 26, 2006
  3. Jan 24, 2006
  4. Jan 23, 2006
  5. Jan 19, 2006
  6. Jan 17, 2006
  7. Jan 16, 2006
  8. Jan 14, 2006
  9. Jan 13, 2006
  10. Jan 11, 2006
  11. Jan 10, 2006
  12. Jan 07, 2006
  13. Jan 06, 2006
  14. Dec 26, 2005
  15. Dec 14, 2005
  16. Dec 12, 2005
    • Chris Lattner's avatar
      Implement a little hack for parity with GCC on crafty. This speeds up · 3b0a62d8
      Chris Lattner authored
      186.crafty by about 16% (from 15.109s to 13.045s) on my system.
      
      This turns allocas with unions/casts into scalars.  For example crafty has
      something like this:
      
          union doub {
            unsigned short i[4];
            long long d;
          };
      int f(long long a) {
        return ((union doub){.d=a}).i[1];
      }
      
      Instead of generating loads and stores to an alloca, we now promote the
      whole thing to a scalar long value.
      
      This implements: Transforms/ScalarRepl/AggregatePromote.ll
      
      llvm-svn: 24667
      3b0a62d8
  17. Dec 05, 2005
  18. Nov 30, 2005
  19. Nov 25, 2005
  20. Nov 22, 2005
  21. Nov 18, 2005
  22. Nov 17, 2005
  23. Nov 10, 2005
  24. Nov 05, 2005
    • Nate Begeman's avatar
      Add support alignment of allocation instructions. · 848622f8
      Nate Begeman authored
      Add support for specifying alignment and size of setjmp jmpbufs.
      
      No targets currently do anything with this information, nor is it presrved
      in the bytecode representation.  That's coming up next.
      
      llvm-svn: 24196
      848622f8
    • Chris Lattner's avatar
      Implement Transforms/TailCallElim/return-undef.ll, a trivial case · 16b29e95
      Chris Lattner authored
      that has been sitting in my inbox since May 18. :)
      
      llvm-svn: 24194
      16b29e95
    • Chris Lattner's avatar
      Turn sdiv into udiv if both operands have a clear sign bit. This occurs · dd0c1740
      Chris Lattner authored
      a few times in crafty:
      
      OLD:    %tmp.36 = div int %tmp.35, 8            ; <int> [#uses=1]
      NEW:    %tmp.36 = div uint %tmp.35, 8           ; <uint> [#uses=0]
      OLD:    %tmp.19 = div int %tmp.18, 8            ; <int> [#uses=1]
      NEW:    %tmp.19 = div uint %tmp.18, 8           ; <uint> [#uses=0]
      OLD:    %tmp.117 = div int %tmp.116, 8          ; <int> [#uses=1]
      NEW:    %tmp.117 = div uint %tmp.116, 8         ; <uint> [#uses=0]
      OLD:    %tmp.92 = div int %tmp.91, 8            ; <int> [#uses=1]
      NEW:    %tmp.92 = div uint %tmp.91, 8           ; <uint> [#uses=0]
      
      Which all turn into shrs.
      
      llvm-svn: 24190
      dd0c1740
    • Chris Lattner's avatar
      Turn srem -> urem when neither input has their sign bit set. This triggers · e9ff0eaf
      Chris Lattner authored
      8 times in vortex, allowing the srems to be turned into shrs:
      
      OLD:    %tmp.104 = rem int %tmp.5.i37, 16               ; <int> [#uses=1]
      NEW:    %tmp.104 = rem uint %tmp.5.i37, 16              ; <uint> [#uses=0]
      OLD:    %tmp.98 = rem int %tmp.5.i24, 16                ; <int> [#uses=1]
      NEW:    %tmp.98 = rem uint %tmp.5.i24, 16               ; <uint> [#uses=0]
      OLD:    %tmp.91 = rem int %tmp.5.i19, 8         ; <int> [#uses=1]
      NEW:    %tmp.91 = rem uint %tmp.5.i19, 8                ; <uint> [#uses=0]
      OLD:    %tmp.88 = rem int %tmp.5.i14, 8         ; <int> [#uses=1]
      NEW:    %tmp.88 = rem uint %tmp.5.i14, 8                ; <uint> [#uses=0]
      OLD:    %tmp.85 = rem int %tmp.5.i9, 1024               ; <int> [#uses=2]
      NEW:    %tmp.85 = rem uint %tmp.5.i9, 1024              ; <uint> [#uses=0]
      OLD:    %tmp.82 = rem int %tmp.5.i, 512         ; <int> [#uses=2]
      NEW:    %tmp.82 = rem uint %tmp.5.i1, 512               ; <uint> [#uses=0]
      OLD:    %tmp.48.i = rem int %tmp.5.i.i161, 4            ; <int> [#uses=1]
      NEW:    %tmp.48.i = rem uint %tmp.5.i.i161, 4           ; <uint> [#uses=0]
      OLD:    %tmp.20.i2 = rem int %tmp.5.i.i, 4              ; <int> [#uses=1]
      NEW:    %tmp.20.i2 = rem uint %tmp.5.i.i, 4             ; <uint> [#uses=0]
      
      it also occurs 9 times in gcc, but with odd constant divisors (1009 and 61)
      so the payoff isn't as great.
      
      llvm-svn: 24189
      e9ff0eaf
  25. Nov 02, 2005
  26. Oct 31, 2005
  27. Oct 29, 2005
Loading