Skip to content
  1. Oct 03, 2005
  2. Oct 02, 2005
  3. Oct 01, 2005
  4. Sep 30, 2005
  5. Sep 29, 2005
  6. Sep 28, 2005
  7. Sep 27, 2005
  8. Sep 26, 2005
  9. Sep 23, 2005
  10. Sep 21, 2005
  11. Sep 20, 2005
  12. Sep 19, 2005
    • Chris Lattner's avatar
      Teach the local spiller to turn stack slot loads into register-register copies · 2f838f21
      Chris Lattner authored
      when possible, avoiding the load (and avoiding the copy if the value is already
      in the right register).
      
      This patch came about when I noticed code like the following being generated:
      
        store R17 -> [SS1]
        ...blah...
        R4 = load [SS1]
      
      This was causing an LSU reject on the G5.  This problem was due to the register
      allocator folding spill code into a reg-reg copy (producing the load), which
      prevented the spiller from being able to rewrite the load into a copy, despite
      the fact that the value was already available in a register.  In the case
      above, we now rip out the R4 load and replace it with a R4 = R17 copy.
      
      This speeds up several programs on X86 (which spills a lot :) ), e.g.
      smg2k from 22.39->20.60s, povray from 12.93->12.66s, 168.wupwise from
      68.54->53.83s (!), 197.parser from 7.33->6.62s (!), etc.  This may have a larger
      impact in some cases on the G5 (by avoiding LSU rejects), though it probably
      won't trigger as often (less spilling in general).
      
      Targets that implement folding of loads/stores into copies should implement
      the isLoadFromStackSlot hook to get this.
      
      llvm-svn: 23388
      2f838f21
  13. Sep 16, 2005
  14. Sep 13, 2005
  15. Sep 10, 2005
  16. Sep 09, 2005
  17. Sep 08, 2005
  18. Sep 07, 2005
Loading