Skip to content
  1. Nov 19, 2005
  2. Nov 18, 2005
  3. Nov 16, 2005
  4. Nov 11, 2005
  5. Nov 09, 2005
  6. Nov 06, 2005
  7. Oct 30, 2005
    • Chris Lattner's avatar
      Significantly simplify this code and make it more aggressive. Instead of having · 6871b23d
      Chris Lattner authored
      a special case hack for X86, make the hack more general: if an incoming argument
      register is not used in any block other than the entry block, don't copy it to
      a vreg.  This helps us compile code like this:
      
      %struct.foo = type { int, int, [0 x ubyte] }
      int %test(%struct.foo* %X) {
              %tmp1 = getelementptr %struct.foo* %X, int 0, uint 2, int 100
              %tmp = load ubyte* %tmp1                ; <ubyte> [#uses=1]
              %tmp2 = cast ubyte %tmp to int          ; <int> [#uses=1]
              ret int %tmp2
      }
      
      to:
      
      _test:
              lbz r3, 108(r3)
              blr
      
      instead of:
      
      _test:
              lbz r2, 108(r3)
              or r3, r2, r2
              blr
      
      The (dead) copy emitted to copy r3 into a vreg for extra-block uses was
      increasing the live range of r3 past the load, preventing the coallescing.
      
      This implements CodeGen/PowerPC/reg-coallesce-simple.ll
      
      llvm-svn: 24115
      6871b23d
  8. Oct 19, 2005
  9. Oct 10, 2005
  10. Oct 05, 2005
  11. Oct 01, 2005
  12. Sep 29, 2005
  13. Sep 28, 2005
  14. Sep 13, 2005
  15. Sep 07, 2005
  16. Sep 02, 2005
  17. Sep 01, 2005
  18. Aug 27, 2005
  19. Aug 26, 2005
  20. Aug 24, 2005
  21. Aug 22, 2005
  22. Aug 18, 2005
  23. Aug 17, 2005
  24. Aug 16, 2005
    • Chris Lattner's avatar
      Eliminate the RegSDNode class, which 3 nodes (CopyFromReg/CopyToReg/ImplicitDef) · 33182325
      Chris Lattner authored
      used to tack a register number onto the node.
      
      Instead of doing this, make a new node, RegisterSDNode, which is a leaf
      containing a register number.  These three operations just become normal
      DAG nodes now, instead of requiring special handling.
      
      Note that with this change, it is no longer correct to make illegal
      CopyFromReg/CopyToReg nodes.  The legalizer will not touch them, and this
      is bad, so don't do it. :)
      
      llvm-svn: 22806
      33182325
  25. Aug 09, 2005
  26. Jul 27, 2005
  27. Jul 19, 2005
  28. Jul 05, 2005
    • Chris Lattner's avatar
      Make several cleanups to Andrews varargs change: · f5473e44
      Chris Lattner authored
      1. Pass Value*'s into lowering methods so that the proper pointers can be
         added to load/stores from the valist
      2. Intrinsics that return void should only return a token chain, not a token
         chain/retval pair.
      3. Rename LowerVAArgNext -> LowerVAArg, because VANext is long gone.
      
      llvm-svn: 22338
      f5473e44
  29. Jun 29, 2005
Loading