Skip to content
  1. Sep 05, 2007
    • 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
    • Bill Wendling's avatar
      Add the 64-bit versions of the DS* Altivec instructions. · b9bf812b
      Bill Wendling authored
      llvm-svn: 41717
      b9bf812b
  2. Sep 04, 2007
  3. Sep 03, 2007
  4. Sep 01, 2007
  5. Aug 31, 2007
  6. Aug 30, 2007
  7. Aug 29, 2007
  8. Aug 28, 2007
Loading