Skip to content
  1. Oct 03, 2009
  2. Sep 04, 2009
  3. Aug 22, 2009
  4. Jul 09, 2009
    • Lang Hames's avatar
      Improved tracking of value number kills. VN kills are now represented · dab7b06d
      Lang Hames authored
      as an (index,bool) pair. The bool flag records whether the kill is a
      PHI kill or not. This code will be used to enable splitting of live
      intervals containing PHI-kills.
      
      A slight change to live interval weights introduced an extra spill
      into lsr-code-insertion (outside the critical sections). The test 
      condition has been updated to reflect this.
      
      llvm-svn: 75097
      dab7b06d
  5. Jun 24, 2009
  6. Jun 19, 2009
  7. Jun 17, 2009
  8. Jun 02, 2009
  9. May 18, 2009
  10. May 06, 2009
  11. Apr 22, 2009
    • Evan Cheng's avatar
      It has finally happened. Spiller is now using live interval info. · 1a99a5f5
      Evan Cheng authored
      This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue.
      
      llvm-svn: 69743
      1a99a5f5
  12. Apr 17, 2009
    • Evan Cheng's avatar
      Teach spiller to unfold instructions which modref spill slot when a scratch · b96a1082
      Evan Cheng authored
      register is available and when it's profitable.
      
      e.g.
           xorq  %r12<kill>, %r13
           addq  %rax, -184(%rbp)
           addq  %r13, -184(%rbp)
      ==>
           xorq  %r12<kill>, %r13
           movq  -184(%rbp), %r12
           addq  %rax, %r12
           addq  %r13, %r12
           movq  %r12, -184(%rbp)
      
      Two more instructions, but fewer memory accesses. It can also open up
      opportunities for more optimizations.
      
      llvm-svn: 69341
      b96a1082
  13. Apr 13, 2009
  14. Apr 09, 2009
    • Bob Wilson's avatar
      Fix pr3954. The register scavenger asserts for inline assembly with · 51856173
      Bob Wilson authored
      register destinations that are tied to source operands.  The
      TargetInstrDescr::findTiedToSrcOperand method silently fails for inline
      assembly.  The existing MachineInstr::isRegReDefinedByTwoAddr was very
      close to doing what is needed, so this revision makes a few changes to
      that method and also renames it to isRegTiedToUseOperand (for consistency
      with the very similar isRegTiedToDefOperand and because it handles both
      two-address instructions and inline assembly with tied registers).
      
      llvm-svn: 68714
      51856173
  15. Mar 31, 2009
  16. Mar 30, 2009
  17. Mar 20, 2009
  18. Mar 19, 2009
  19. Mar 17, 2009
    • Evan Cheng's avatar
      Spiller may unfold load / mod / store instructions as an optimization when the... · 76f1b47e
      Evan Cheng authored
      Spiller may unfold load / mod / store instructions as an optimization when the would be loaded value is available in a register. It needs to check if it's legal to clobber the register. Also, the register can contain values of multiple spill slots, make sure to check all instead of just the one being unfolded.
      
      llvm-svn: 67068
      76f1b47e
  20. Mar 14, 2009
  21. Mar 12, 2009
  22. Mar 11, 2009
  23. Mar 09, 2009
  24. Mar 08, 2009
  25. Feb 28, 2009
  26. Feb 26, 2009
  27. Feb 17, 2009
  28. Feb 13, 2009
  29. Feb 12, 2009
  30. Feb 11, 2009
    • Evan Cheng's avatar
      Implement PR3495: local spiller optimization. The local spiller can now keep... · a1968b0f
      Evan Cheng authored
      Implement PR3495: local spiller optimization. The local spiller can now keep availability information over BB boundaries. It visits BB's in depth first order. After visiting a BB if it find a successor which has a single predecessor it visits the successor next without clearing the availability information. This allows the successor to omit reloads or change them into copies.
      
      llvm-svn: 64298
      a1968b0f
  31. Feb 03, 2009
  32. Jan 20, 2009
  33. Dec 02, 2008
  34. Oct 17, 2008
Loading