Skip to content
  1. Jun 30, 2009
    • Evan Cheng's avatar
      Add a bit IsUndef to MachineOperand. This indicates the def / use register... · 0dc101b8
      Evan Cheng authored
      Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them.
      
      The register allocator, when it allocates a register to a virtual register defined by an implicit_def, can allocate any physical register without worrying about overlapping live ranges. It should mark all of operands of the said virtual register so later passes will do the right thing.
      
      This is not the best solution. But it should be a lot less fragile to having the scavenger try to track what is defined by implicit_def.
      
      llvm-svn: 74518
      0dc101b8
  2. Jun 24, 2009
  3. Jun 05, 2009
  4. May 01, 2009
  5. Apr 29, 2009
  6. Apr 15, 2009
  7. Apr 10, 2009
  8. Apr 09, 2009
  9. Mar 23, 2009
  10. Mar 19, 2009
  11. Feb 19, 2009
  12. Jan 28, 2009
  13. Dec 23, 2008
  14. Dec 18, 2008
  15. Dec 09, 2008
  16. Dec 05, 2008
  17. Nov 18, 2008
  18. Oct 10, 2008
  19. Oct 03, 2008
  20. Oct 02, 2008
  21. Sep 24, 2008
  22. 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
  23. Sep 14, 2008
  24. 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
  25. Sep 12, 2008
  26. Sep 03, 2008
    • Dan Gohman's avatar
      Fix addRegisterDead and addRegisterKilled to be more thorough · c7367b45
      Dan Gohman authored
      when searching for redundant subregister dead/kill bits.
      
      Previously it was common to see instructions marked like this:
        "RET %EAX<imp-use,kill>, %AX<imp-use,kill>"
      
      With this change, addRegisterKilled continues scanning after
      finding the %EAX operand, so it proceeds to discover the
      redundant %AX kill and eliminates it, producing this:
        "RET %EAX<imp-use,kill>"
      
      This currently has no effect on the generated code.
      
      llvm-svn: 55698
      c7367b45
  27. Aug 30, 2008
  28. Aug 27, 2008
  29. Aug 24, 2008
  30. Aug 20, 2008
  31. Aug 15, 2008
  32. Aug 14, 2008
  33. 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
Loading