Skip to content
  1. Jul 23, 2004
    • Chris Lattner's avatar
      Improve comments a bit · 53280cd2
      Chris Lattner authored
      Use an explicit LiveRange class to represent ranges instead of an std::pair.
      This is a minor cleanup, but is really intended to make a future patch simpler
      and less invasive.
      
      Alkis, could you please take a look at LiveInterval::liveAt?  I suspect that
      you can add an operator<(unsigned) to LiveRange, allowing us to speed up the
      upper_bound call by quite a bit (this would also apply to other callers of
      upper/lower_bound).  I would do it myself, but I still don't understand that
      crazy liveAt function, despite the comment. :)
      
      Basically I would like to see this:
          LiveRange dummy(index, index+1);
          Ranges::const_iterator r = std::upper_bound(ranges.begin(),
                                                      ranges.end(),
                                                      dummy);
      
      Turn into:
          Ranges::const_iterator r = std::upper_bound(ranges.begin(),
                                                      ranges.end(),
                                                      index);
      
      llvm-svn: 15130
      53280cd2
    • Chris Lattner's avatar
      Update live intervals more accurately for PHI elim. This slightly reduces · 2d75978b
      Chris Lattner authored
      the live intervals for some registers.
      
      llvm-svn: 15125
      2d75978b
    • Chris Lattner's avatar
      Force coallescing of live ranges that have a single definition, even if they · b549420c
      Chris Lattner authored
      interfere.  Because these intervals have a single definition, and one of them
      is a copy instruction, they are always safe to merge even if their lifetimes
      interfere.  This slightly reduces the amount of spill code, for example on
      252.eon, from:
      
       12837 spiller               - Number of loads added
        7604 spiller               - Number of stores added
        5842 spiller               - Number of register spills
       18155 liveintervals         - Number of identity moves eliminated after coalescing
      
      to:
      
        12754 spiller               - Number of loads added
         7585 spiller               - Number of stores added
         5803 spiller               - Number of register spills
        18262 liveintervals         - Number of identity moves eliminated after coalescing
      
      The much much bigger win would be to merge intervals with multiple definitions
      (aka phi nodes) but this is not that day.
      
      llvm-svn: 15124
      b549420c
    • Chris Lattner's avatar
      costmetic changes · 84b93bb1
      Chris Lattner authored
      llvm-svn: 15118
      84b93bb1
  2. Jul 22, 2004
  3. Jul 21, 2004
  4. Jul 20, 2004
  5. Jul 19, 2004
  6. Jul 17, 2004
  7. Jul 16, 2004
Loading