Skip to content
  1. Aug 31, 2006
  2. Aug 30, 2006
  3. Aug 28, 2006
  4. Aug 27, 2006
  5. Aug 26, 2006
  6. Aug 25, 2006
    • Chris Lattner's avatar
      Take advantage of the recent improvements to the liveintervals set (tracking · bdf12106
      Chris Lattner authored
      instructions which define each value#) to simplify and improve the coallescer.
      In particular, this patch:
      
      1. Implements iterative coallescing.
      2. Reverts an unsafe hack from handlePhysRegDef, superceeding it with a
         better solution.
      3. Implements PR865, "coallescing" away the second copy in code like:
      
         A = B
         ...
         B = A
      
      This also includes changes to symbolically print registers in intervals
      when possible.
      
      llvm-svn: 29862
      bdf12106
  7. Aug 22, 2006
  8. Jul 21, 2006
  9. Jul 20, 2006
  10. May 24, 2006
  11. May 12, 2006
  12. May 11, 2006
  13. May 09, 2006
  14. May 04, 2006
  15. May 01, 2006
  16. Apr 30, 2006
  17. Jan 23, 2006
  18. Jan 10, 2006
  19. Jan 03, 2006
  20. Oct 26, 2005
  21. Oct 21, 2005
    • Chris Lattner's avatar
      Make the coallescer a bit smarter, allowing it to join more live ranges. · e95b5745
      Chris Lattner authored
      For example, we can now join things like [0-30:0)[31-40:1)[52-59:2)
      with [40:60:0) if the 52-59 range is defined by a copy from the 40-60 range.
      The resultant range ends up being [0-30:0)[31-60:1).
      
      This fires a lot through-out the test suite (e.g. shrinking bc from
      19492 -> 18509 machineinstrs) though most gains are smaller (e.g. about
      50 copies eliminated from crafty).
      
      llvm-svn: 23866
      e95b5745
  22. Sep 21, 2005
  23. Sep 09, 2005
  24. Sep 07, 2005
  25. Sep 02, 2005
  26. Aug 24, 2005
  27. Jul 28, 2005
  28. May 14, 2005
  29. May 13, 2005
  30. Apr 22, 2005
  31. Apr 09, 2005
  32. Mar 10, 2005
    • Chris Lattner's avatar
      I didn't mean to check this in. :( · 6f6ecad9
      Chris Lattner authored
      llvm-svn: 20555
      6f6ecad9
    • Chris Lattner's avatar
      Allow the live interval analysis pass to be a bit more aggressive about · 76aa8e07
      Chris Lattner authored
      numbering values in live ranges for physical registers.
      
      The alpha backend currently generates code that looks like this:
      
        vreg = preg
      ...
        preg = vreg
        use preg
      ...
        preg = vreg
        use preg
      
      etc.  Because vreg contains the value of preg coming in, each of the
      copies back into preg contain that initial value as well.
      
      In the case of the Alpha, this allows this testcase:
      
      void "foo"(int %blah) {
              store int 5, int *%MyVar
              store int 12, int* %MyVar2
              ret void
      }
      
      to compile to:
      
      foo:
              ldgp $29, 0($27)
              ldiq $0,5
              stl $0,MyVar
              ldiq $0,12
              stl $0,MyVar2
              ret $31,($26),1
      
      instead of:
      
      foo:
              ldgp $29, 0($27)
              bis $29,$29,$0
              ldiq $1,5
              bis $0,$0,$29
              stl $1,MyVar
              ldiq $1,12
              bis $0,$0,$29
              stl $1,MyVar2
              ret $31,($26),1
      
      This does not seem to have any noticable effect on X86 code.
      
      This fixes PR535.
      
      llvm-svn: 20536
      76aa8e07
  33. Jan 08, 2005
Loading