Skip to content
  1. 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
  2. Apr 13, 2009
  3. 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
  4. Mar 31, 2009
  5. Mar 30, 2009
  6. Mar 20, 2009
  7. Mar 19, 2009
  8. 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
  9. Mar 14, 2009
  10. Mar 12, 2009
  11. Mar 11, 2009
  12. Mar 09, 2009
  13. Mar 08, 2009
  14. Feb 28, 2009
  15. Feb 26, 2009
  16. Feb 17, 2009
  17. Feb 13, 2009
  18. Feb 12, 2009
  19. 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
  20. Feb 03, 2009
  21. Jan 20, 2009
  22. Dec 02, 2008
  23. Oct 17, 2008
  24. Oct 14, 2008
  25. Oct 06, 2008
  26. Oct 03, 2008
  27. Sep 11, 2008
  28. Sep 10, 2008
  29. Sep 04, 2008
  30. Aug 19, 2008
  31. Aug 05, 2008
  32. Jul 18, 2008
  33. Jul 08, 2008
    • Dan Gohman's avatar
      Pool-allocation for MachineInstrs, MachineBasicBlocks, and · 3b460303
      Dan Gohman authored
      MachineMemOperands. The pools are owned by MachineFunctions.
      
      This drastically reduces the number of calls to malloc/free made
      during the "Emit" phase of scheduling, as well as later phases
      in CodeGen. Combined with other changes, this speeds up the
      "instruction selection" phase of CodeGen by 10% in some cases.
      
      llvm-svn: 53212
      3b460303
Loading