Skip to content
  1. Nov 02, 2006
  2. 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
  3. Aug 27, 2006
  4. Aug 02, 2006
  5. Aug 01, 2006
  6. Jul 21, 2006
  7. Jul 20, 2006
  8. Jun 29, 2006
  9. May 04, 2006
  10. Jan 23, 2006
  11. Sep 30, 2005
  12. Apr 22, 2005
  13. Jan 23, 2005
  14. Sep 02, 2004
    • Reid Spencer's avatar
      Changes For Bug 352 · 7c16caa3
      Reid Spencer authored
      Move include/Config and include/Support into include/llvm/Config,
      include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
      public header files must be under include/llvm/.
      
      llvm-svn: 16137
      7c16caa3
  15. Aug 16, 2004
  16. Aug 15, 2004
  17. Jul 21, 2004
  18. Jun 25, 2004
  19. Jun 02, 2004
  20. Mar 16, 2004
  21. Feb 23, 2004
  22. Feb 19, 2004
  23. Feb 15, 2004
  24. Feb 13, 2004
  25. Feb 12, 2004
  26. Feb 10, 2004
  27. Dec 14, 2003
    • Alkis Evlogimenos's avatar
      Change interface of MachineOperand as follows: · aaba4639
      Alkis Evlogimenos authored
          a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse()
          b) add isUse(), isDef()
          c) rename opHiBits32() to isHiBits32(),
                    opLoBits32() to isLoBits32(),
                    opHiBits64() to isHiBits64(),
                    opLoBits64() to isLoBits64().
      
      This results to much more readable code, for example compare
      "op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used
      very often in the code.
      
      llvm-svn: 10461
      aaba4639
  28. Nov 11, 2003
  29. Oct 20, 2003
  30. Oct 08, 2003
    • Alkis Evlogimenos's avatar
      Change MRegisterDesc::AliasSet, TargetInstrDescriptor::ImplicitDefs · 5f1f337d
      Alkis Evlogimenos authored
      and TargetInstrDescriptor::ImplicitUses to always point to a null
      terminated array and never be null. So there is no need to check for
      pointer validity when iterating over those sets. Code that looked
      like:
      
      if (const unsigned* AS = TID.ImplicitDefs) {
        for (int i = 0; AS[i]; ++i) {
          // use AS[i]
        }
      }
      
      was changed to:
      
      for (const unsigned* AS = TID.ImplicitDefs; *AS; ++AS) {
        // use *AS
      }
      
      llvm-svn: 8960
      5f1f337d
  31. Aug 18, 2003
  32. Aug 13, 2003
  33. Aug 03, 2003
  34. Aug 02, 2003
  35. May 27, 2003
    • Vikram S. Adve's avatar
      (1) Added special register class containing (for now) %fsr. · 7366fa1a
      Vikram S. Adve authored
          Fixed spilling of %fcc[0-3] which are part of %fsr.
      
      (2) Moved some machine-independent reg-class code to class TargetRegInfo
          from SparcReg{Class,}Info.
      
      (3) Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly()
          and related functions and flags.  Fixed several bugs where only
          "isDef" was being checked, not "isDefAndUse".
      
      llvm-svn: 6341
      7366fa1a
  36. Jan 14, 2003
  37. Jan 13, 2003
  38. Dec 28, 2002
Loading