Skip to content
  1. Sep 30, 2008
    • Duncan Sands's avatar
      Revert commit 56835 since it breaks the build. · 2b9adce1
      Duncan Sands authored
      "If a re-materializable instruction has a register
      operand, the spiller will change the register operand's
      spill weight to HUGE_VAL to avoid it being spilled.
      However, if the operand is already in the queue ready
      to be spilled, avoid re-materializing it".
      
      llvm-svn: 56837
      2b9adce1
    • Evan Cheng's avatar
      If a re-materializable instruction has a register operand, the spiller will... · 9469049f
      Evan Cheng authored
      If a re-materializable instruction has a register operand, the spiller will change the register operand's spill weight to HUGE_VAL to avoid it being spilled. However, if the operand is already in the queue ready to be spilled, avoid re-materializing it.
      
      llvm-svn: 56835
      9469049f
  2. Sep 24, 2008
  3. Sep 21, 2008
  4. Sep 19, 2008
  5. Sep 17, 2008
    • Dale Johannesen's avatar
      Add a bit to mark operands of asm's that conflict · f8610ebe
      Dale Johannesen authored
      with an earlyclobber operand elsewhere.  Propagate
      this bit and the earlyclobber bit through SDISel.
      Change linear-scan RA not to allocate regs in a way 
      that conflicts with an earlyclobber.  See also comments.
      
      llvm-svn: 56290
      f8610ebe
  6. Sep 16, 2008
  7. Sep 13, 2008
    • Dan Gohman's avatar
      Remove isImm(), isReg(), and friends, in favor of · 38453eeb
      Dan Gohman authored
      isImmediate(), isRegister(), and friends, to avoid confusion
      about having two different names with the same meaning. I'm
      not attached to the longer names, and would be ok with
      changing to the shorter names if others prefer it.
      
      llvm-svn: 56189
      38453eeb
  8. Aug 20, 2008
  9. Aug 19, 2008
  10. Aug 18, 2008
  11. Aug 14, 2008
  12. Aug 13, 2008
  13. Aug 06, 2008
  14. Jul 30, 2008
  15. Jul 29, 2008
  16. Jul 28, 2008
    • Dan Gohman's avatar
      Fold the useful features of alist and alist_node into ilist, and · 804c95df
      Dan Gohman authored
      a new ilist_node class, and remove them. Unlike alist_node,
      ilist_node doesn't attempt to manage storage itself, so it avoids
      the associated problems, including being opaque in gdb.
      
      Adjust the Recycler class so that it doesn't depend on alist_node.
      Also, change it to use explicit Size and Align parameters, allowing
      it to work when the largest-sized node doesn't have the greatest
      alignment requirement.
      
      Change MachineInstr's MachineMemOperand list from a pool-backed
      alist to a std::list for now.
      
      llvm-svn: 54146
      804c95df
    • Dan Gohman's avatar
      Fix a typo in a comment. · 24b3ce1d
      Dan Gohman authored
      llvm-svn: 54136
      24b3ce1d
  17. Jul 26, 2008
  18. Jul 25, 2008
  19. Jul 23, 2008
  20. Jul 19, 2008
  21. Jul 18, 2008
  22. Jul 12, 2008
    • Evan Cheng's avatar
      Typos. · 2b3c52d5
      Evan Cheng authored
      llvm-svn: 53504
      2b3c52d5
    • Evan Cheng's avatar
      Fix PR2536: a nasty spiller bug. If a two-address instruction uses a register... · e0a352e8
      Evan Cheng authored
      Fix PR2536: a nasty spiller bug. If a two-address instruction uses a register but the use portion of its live range is not part of its liveinterval, it must be defined by an implicit_def. In that case, do not spill the use. e.g.
      8   %reg1024<def> = IMPLICIT_DEF
      12  %reg1024<def> = INSERT_SUBREG %reg1024<kill>, %reg1025, 2
      
      The live range [12, 14) are not part of the r1024 live interval since it's defined by an implicit def. It will not conflicts with live interval of r1025. Now suppose both registers are spilled, you can easily see a situation where both registers are reloaded before the INSERT_SUBREG and both target registers that would overlap.
      
      llvm-svn: 53503
      e0a352e8
  23. Jul 10, 2008
Loading