Skip to content
  1. Jan 15, 2008
  2. Jan 07, 2008
  3. Jan 04, 2008
  4. Dec 31, 2007
  5. Dec 29, 2007
  6. Nov 12, 2007
  7. Nov 08, 2007
  8. Oct 23, 2007
  9. Oct 20, 2007
  10. Sep 26, 2007
  11. May 06, 2007
  12. May 03, 2007
  13. May 02, 2007
  14. May 01, 2007
  15. Apr 18, 2007
  16. Mar 18, 2007
  17. Dec 19, 2006
  18. Dec 07, 2006
  19. Dec 06, 2006
  20. Dec 01, 2006
  21. Nov 28, 2006
  22. Nov 09, 2006
  23. Nov 02, 2006
  24. Sep 05, 2006
    • Chris Lattner's avatar
      Fix a long-standing wart in the code generator: two-address instruction lowering · 13a5dcdd
      Chris Lattner authored
      actually *removes* one of the operands, instead of just assigning both operands
      the same register.  This make reasoning about instructions unnecessarily complex,
      because you need to know if you are before or after register allocation to match
      up operand #'s with the target description file.
      
      Changing this also gets rid of a bunch of hacky code in various places.
      
      This patch also includes changes to fold loads into cmp/test instructions in
      the X86 backend, along with a significant simplification to the X86 spill
      folding code.
      
      llvm-svn: 30108
      13a5dcdd
  25. Aug 27, 2006
  26. Jul 20, 2006
  27. Jun 29, 2006
  28. May 24, 2006
  29. May 04, 2006
  30. Jan 23, 2006
  31. Oct 26, 2005
  32. Apr 22, 2005
  33. Jan 19, 2005
  34. Jan 02, 2005
    • Chris Lattner's avatar
      Make the 2-address instruction lowering pass smarter in two ways: · 9590870a
      Chris Lattner authored
      1. If we are two-addressing a commutable instruction and the LHS is not the
         last use of the variable, see if the instruction is the last use of the
         RHS.  If so, commute the instruction, allowing us to avoid a
         register-register copy in many cases for common instructions like ADD, OR,
         AND, etc on X86.
      2. If #1 doesn't hold, and if this is an instruction that also existing in
         3-address form, promote the instruction to a 3-address instruction to
         avoid the register-register copy.  We can do this for several common
         instructions in X86, including ADDrr, INC, DEC, etc.
      
      This patch implements test/Regression/CodeGen/X86/commute-two-addr.ll,
      overlap-add.ll, and overlap-shift.ll when I check in the X86 support for it.
      
      llvm-svn: 19245
      9590870a
Loading