Skip to content
  1. Jan 11, 2006
  2. Jan 10, 2006
  3. Jan 09, 2006
  4. Jan 07, 2006
  5. Jan 06, 2006
  6. Jan 03, 2006
  7. Dec 26, 2005
  8. Dec 14, 2005
  9. Dec 13, 2005
    • Reid Spencer's avatar
      Improve ResolveFunctions to: · 175613ad
      Reid Spencer authored
      a) use better local variable names (OldMT -> OldFT) where "M" is used to
         mean "Function" (perhaps it was previously "Method"?)
      b) print out the module identifier in a warning message so that it is
         possible to track down in which module the error occurred.
      
      llvm-svn: 24698
      175613ad
  10. 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
  11. Dec 05, 2005
  12. Dec 03, 2005
  13. Nov 30, 2005
  14. Nov 28, 2005
    • Andrew Lenharth's avatar
      a few more comments on the interfaces and functions · d2511929
      Andrew Lenharth authored
      llvm-svn: 24500
      d2511929
    • Andrew Lenharth's avatar
      Added documented rsprofiler interface. Also remove new profiler passes, the · 517caef4
      Andrew Lenharth authored
      old ones have been updated to implement the interface.
      
      llvm-svn: 24499
      517caef4
    • Jeff Cohen's avatar
      Fix VC++ warning. · 7ff44ec3
      Jeff Cohen authored
      llvm-svn: 24496
      7ff44ec3
    • Andrew Lenharth's avatar
      Random sampling (aka Arnold and Ryder) profiling. This is still preliminary,... · 93e59f60
      Andrew Lenharth authored
      Random sampling (aka Arnold and Ryder) profiling.  This is still preliminary, but it works on spec on x86 and alpha.  The idea is to allow profiling passes to remember what profiling they inserted, then a random sampling framework is inserted which consists of duplicated basic blocks (without profiling), such that at each backedge in the program and entry into every function, the framework chooses whether to use the instrumented code or the instrumentation free code.  The goal of such a framework is to make it reasonably cheap to do random sampling of very expensive profiling products (such as load-value profiling).
      
      The code is organized into 3 parts (2 passes)
      1) a linked set of profiling passes, which implement an analysis group (linked, like alias analysis are).  These insert profiling into the program, and remember what they inserted, so that at a later time they can be queried about any instruction.
      
      2) a pass that handles inserting the random sampling framework.  This also has options to control how random samples are choosen.  Currently implemented are Global counters, register allocated global counters, and read cycle counter (see? there was a reason for it).
      
      The profiling passes are almost identical to the existing ones (block, function, and null profiling is supported right now), and they are valid passes without the sampling framework (hence the existing passes can be unified with the new ones, not done yet).
      
      Some things are a bit ugly still, but that should be fixed up soon enough.
      
      Other todo? making the counter values not "magic 2^16 -1" values, but dynamically choosable.
      
      llvm-svn: 24493
      93e59f60
  15. Nov 25, 2005
  16. Nov 22, 2005
  17. Nov 18, 2005
  18. Nov 17, 2005
  19. Nov 10, 2005
  20. 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
  21. Nov 02, 2005
  22. Oct 31, 2005
Loading