Skip to content
  1. Mar 10, 2011
  2. Feb 15, 2011
    • Jakob Stoklund Olesen's avatar
      Move more fragments of spill weight calculation into CalcSpillWeights.h · 1dd377d8
      Jakob Stoklund Olesen authored
      Simplify the spill weight calculation a bit by bypassing
      getApproximateInstructionCount() and using LiveInterval::getSize() directly.
      This changes the computed spill weights, but only by a constant factor in each
      function. It should not affect how spill weights compare against each other, and
      so it shouldn't affect code generation.
      
      llvm-svn: 125530
      1dd377d8
  3. Jan 09, 2011
  4. Oct 12, 2010
  5. Oct 08, 2010
  6. Aug 12, 2010
  7. Aug 10, 2010
    • Jakob Stoklund Olesen's avatar
      Give up on register class recalculation when the register is used with subreg · 57f3db6e
      Jakob Stoklund Olesen authored
      operands. We don't currently have a hook to provide "the largest super class of
      A where all registers' getSubReg(subidx) is valid and in B".
      
      llvm-svn: 110730
      57f3db6e
    • Jakob Stoklund Olesen's avatar
      Implement register class inflation. · 53c50220
      Jakob Stoklund Olesen authored
      When splitting a live range, the new registers have fewer uses and the
      permissible register class may be less constrained. Recompute the register class
      constraint from the uses of new registers created for a split. This may let them
      be allocated from a larger set, possibly avoiding a spill.
      
      llvm-svn: 110703
      53c50220
    • Jakob Stoklund Olesen's avatar
      Transpose the calculation of spill weights such that we are calculating one · e00c49da
      Jakob Stoklund Olesen authored
      register at a time. This turns out to be slightly faster than iterating over
      instructions, but more importantly, it allows us to compute spill weights for
      new registers created after the spill weight pass has run.
      
      Also compute the allocation hint at the same time as the spill weight. This
      allows us to use the spill weight as a cost metric for copies, and choose the
      most profitable hint if there is more than one possibility.
      
      The new hints provide a very small (< 0.1%) but universal code size improvement.
      
      llvm-svn: 110631
      e00c49da
  8. Jul 22, 2010
  9. Jul 16, 2010
  10. Jul 03, 2010
  11. Feb 18, 2010
    • Jakob Stoklund Olesen's avatar
      Always normalize spill weights, also for intervals created by spilling. · c953acbd
      Jakob Stoklund Olesen authored
      Moderate the weight given to very small intervals.
      
      The spill weight given to new intervals created when spilling was not
      normalized in the same way as the original spill weights calculated by
      CalcSpillWeights. That meant that restored registers would tend to hang around
      because they had a much higher spill weight that unspilled registers.
      
      This improves the runtime of a few tests by up to 10%, and there are no
      significant regressions.
      
      llvm-svn: 96613
      c953acbd
  12. Feb 10, 2010
  13. Feb 09, 2010
  14. Dec 24, 2009
    • David Greene's avatar
      · e40730d8
      David Greene authored
      Change errs() to dbgs().
      
      llvm-svn: 92099
      e40730d8
  15. Dec 22, 2009
  16. Dec 14, 2009
Loading