Skip to content
  1. May 18, 2009
  2. May 06, 2009
  3. 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
  4. 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
  5. Apr 13, 2009
  6. 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
  7. Mar 31, 2009
  8. Mar 30, 2009
  9. Mar 20, 2009
  10. Mar 19, 2009
  11. 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
  12. Mar 14, 2009
  13. Mar 12, 2009
  14. Mar 11, 2009
  15. Mar 09, 2009
  16. Mar 08, 2009
  17. Feb 28, 2009
  18. Feb 26, 2009
  19. Feb 17, 2009
  20. Feb 13, 2009
  21. Feb 12, 2009
  22. 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
  23. Feb 03, 2009
  24. Jan 20, 2009
  25. Dec 02, 2008
  26. Oct 17, 2008
  27. Oct 14, 2008
  28. Oct 06, 2008
  29. Oct 03, 2008
  30. Sep 11, 2008
  31. Sep 10, 2008
  32. Sep 04, 2008
  33. Aug 19, 2008
Loading