Skip to content
  1. Sep 20, 2008
  2. Sep 19, 2008
  3. 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
  4. Sep 09, 2008
  5. Sep 04, 2008
  6. Aug 15, 2008
  7. Aug 14, 2008
  8. Aug 13, 2008
  9. Jul 23, 2008
  10. Jun 24, 2008
  11. Jun 20, 2008
    • Evan Cheng's avatar
      Enhanced heuristic to determine the *best* register to spill. Instead of... · efc67e78
      Evan Cheng authored
      Enhanced heuristic to determine the *best* register to spill. Instead of picking the register with the lowest spill weight. Consider (up to) 2 additional registers with spill weights that are close to the lowest spill weight. The one with fewest defs and uses that conflicts with the current interval (weighted by loop depth) is the spill candidate.
      
      This is not always a win, but there are much more wins than loses and wins tend to be more noticeable.
      
      llvm-svn: 52554
      efc67e78
  12. Jun 06, 2008
  13. Jun 04, 2008
  14. Apr 11, 2008
  15. Apr 03, 2008
  16. Mar 25, 2008
  17. Mar 13, 2008
  18. Mar 11, 2008
  19. Mar 10, 2008
  20. Feb 26, 2008
  21. Feb 20, 2008
  22. Feb 10, 2008
  23. Jan 04, 2008
  24. Dec 31, 2007
    • Chris Lattner's avatar
      Rename SSARegMap -> MachineRegisterInfo in keeping with the idea · a10fff51
      Chris Lattner authored
      that "machine" classes are used to represent the current state of
      the code being compiled.  Given this expanded name, we can start 
      moving other stuff into it.  For now, move the UsedPhysRegs and
      LiveIn/LoveOuts vectors from MachineFunction into it.
      
      Update all the clients to match.
      
      This also reduces some needless #includes, such as MachineModuleInfo
      from MachineFunction.
      
      llvm-svn: 45467
      a10fff51
  25. Dec 29, 2007
  26. Dec 11, 2007
  27. Nov 17, 2007
    • Evan Cheng's avatar
      Live interval splitting: · 8e223793
      Evan Cheng authored
      When a live interval is being spilled, rather than creating short, non-spillable
      intervals for every def / use, split the interval at BB boundaries. That is, for
      every BB where the live interval is defined or used, create a new interval that
      covers all the defs and uses in the BB.
      
      This is designed to eliminate one common problem: multiple reloads of the same
      value in a single basic block. Note, it does *not* decrease the number of spills
      since no copies are inserted so the split intervals are *connected* through
      spill and reloads (or rematerialization). The newly created intervals can be
      spilled again, in that case, since it does not span multiple basic blocks, it's
      spilled in the usual manner. However, it can reuse the same stack slot as the
      previously split interval.
      
      This is currently controlled by -split-intervals-at-bb.
      
      llvm-svn: 44198
      8e223793
  28. Nov 15, 2007
  29. Nov 12, 2007
  30. Nov 04, 2007
  31. Nov 03, 2007
    • Evan Cheng's avatar
      There are times when the coalescer would not coalesce away a copy but the copy · 66298e22
      Evan Cheng authored
      can be eliminated by the allocator is the destination and source targets the
      same register. The most common case is when the source and destination registers
      are in different class. For example, on x86 mov32to32_ targets GR32_ which
      contains a subset of the registers in GR32.
      
      The allocator can do 2 things:
      1. Set the preferred allocation for the destination of a copy to that of its source.
      2. After allocation is done, change the allocation of a copy destination (if
         legal) so the copy can be eliminated.
      
      This eliminates 443 extra moves from 403.gcc.
      
      llvm-svn: 43662
      66298e22
  32. Oct 17, 2007
Loading