Skip to content
  1. Sep 14, 2007
  2. Sep 13, 2007
  3. Sep 12, 2007
  4. Sep 11, 2007
  5. Sep 10, 2007
    • Chris Lattner's avatar
      Emit: · 58c227bd
      Chris Lattner authored
              cmpl    %eax, %ecx
              setae   %al
              movzbl  %al, %eax
      
      instead of:
      
              cmpl    %eax, %ecx
              setb    %al
              xorb    $1, %al
              movzbl  %al, %eax
      
      when using logical not of a C comparison.
      
      llvm-svn: 41807
      58c227bd
    • Chris Lattner's avatar
      1. Don't call Value::getName(), which is slow. · 33a7f514
      Chris Lattner authored
      2. Lower calls to fabs and friends to FABS nodes etc unless the function has
         internal linkage.  Before we wouldn't lower if it had a definition, which
         is incorrect.  This allows us to compile:
      
      define double @fabs(double %f) {
              %tmp2 = tail call double @fabs( double %f )
              ret double %tmp2
      }
      
      into:
      
      _fabs:
              fabs f1, f1
              blr 
      
      llvm-svn: 41805
      33a7f514
  6. Sep 08, 2007
  7. Sep 07, 2007
  8. Sep 06, 2007
    • David Greene's avatar
      · 517d5d8e
      David Greene authored
      Constify to catch bugs.
      
      llvm-svn: 41751
      517d5d8e
    • Dale Johannesen's avatar
      Next round of APFloat changes. · bed9dc42
      Dale Johannesen authored
      Use APFloat in UpgradeParser and AsmParser.
      Change all references to ConstantFP to use the
      APFloat interface rather than double.  Remove
      the ConstantFP double interfaces.
      Use APFloat functions for constant folding arithmetic
      and comparisons.
      (There are still way too many places APFloat is
      just a wrapper around host float/double, but we're
      getting there.)
      
      llvm-svn: 41747
      bed9dc42
    • Anton Korobeynikov's avatar
      Proper handle case, when aliasee is external weak symbol referenced only by alias itself. · a07765b8
      Anton Korobeynikov authored
      Also, fix a case, when target doesn't have weak symbols supported.
      
      llvm-svn: 41746
      a07765b8
    • David Greene's avatar
      · a6d5d2a6
      David Greene authored
      Add instruction dump output.  This helps find bugs.
      
      llvm-svn: 41744
      a6d5d2a6
    • David Greene's avatar
      · 65d2a697
      David Greene authored
      Pluggable coalescers inplementation.
      
      llvm-svn: 41743
      65d2a697
    • Evan Cheng's avatar
      Fix a memory leak. · d059eed1
      Evan Cheng authored
      llvm-svn: 41739
      d059eed1
  9. Sep 05, 2007
    • Evan Cheng's avatar
      Use pool allocator for all the VNInfo's to improve memory access locality.... · db53aef5
      Evan Cheng authored
      Use pool allocator for all the VNInfo's to improve memory access locality. This reduces coalescing time on siod Mac OS X PPC by 35%. Also remove the back ptr from VNInfo to LiveInterval and other tweaks.
      
      llvm-svn: 41729
      db53aef5
    • Duncan Sands's avatar
      Due to label merging, the last label for an invoke · 2c0a0fb7
      Duncan Sands authored
      may be the same as the first label for the following
      invoke.  Remove a micro-optimization which was wrong
      in this case.
      
      llvm-svn: 41720
      2c0a0fb7
    • Duncan Sands's avatar
      Fix PR1628. When exception handling is turned on, · 3c1b7fc0
      Duncan Sands authored
      labels are generated bracketing each call (not just
      invokes).  This is used to generate entries in
      the exception table required by the C++ personality.
      However it gets in the way of tail-merging.  This
      patch solves the problem by no longer placing labels
      around ordinary calls.  Instead we generate entries
      in the exception table that cover every instruction
      in the function that wasn't covered by an invoke
      range (the range given by the labels around the invoke).
      As an optimization, such entries are only generated for
      parts of the function that contain a call, since for
      the moment those are the only instructions that can
      throw an exception [1].  As a happy consequence, we
      now get a smaller exception table, since the same
      region can cover many calls.  While there, I also
      implemented folding of invoke ranges - successive
      ranges are merged when safe to do so.  Finally, if
      a selector contains only a cleanup, there's a special
      shorthand for it - place a 0 in the call-site entry.
      I implemented this while there.  As a result, the
      exception table output (excluding filters) is now
      optimal - it cannot be made smaller [2].  The
      problem with throw filters is that folding them
      optimally is hard, and the benefit of folding them is
      minimal.
      
      [1] I tested that having trapping instructions (eg
      divide by zero) in such a region doesn't cause trouble.
      [2] It could be made smaller with the help of higher
      layers, eg by having branch folding reorder basic blocks
      ending in invokes with the same landing pad so they
      follow each other.  I don't know if this is worth doing.
      
      llvm-svn: 41718
      3c1b7fc0
  10. Sep 04, 2007
  11. Sep 03, 2007
  12. Sep 01, 2007
  13. Aug 31, 2007
  14. Aug 30, 2007
Loading