Skip to content
  1. Jun 11, 2004
    • Chris Lattner's avatar
      Split compare instruction handling OUT of handleTwoArgFP into handleCompareFP. · 94ff2c32
      Chris Lattner authored
      This makes the code much simpler, and the two cases really do belong apart.
      Once we do it, it's pretty obvious how flawed the logic was for A != A case,
      so I fixed it (fixing PR369).
      
      This also uses freeStackSlotAfter instead of inserting an fxchg then
      popStackAfter'ing in the case where there is a dead result (unlikely, but
      possible), producing better code.
      
      llvm-svn: 14139
      94ff2c32
  2. Jun 02, 2004
  3. May 01, 2004
  4. Apr 14, 2004
  5. Apr 12, 2004
  6. Apr 11, 2004
  7. Apr 01, 2004
    • Chris Lattner's avatar
      Simplify code by using the more powerful BuildMI forms. · bc7e35b3
      Chris Lattner authored
      Implement a small optimization.  In test/Regression/CodeGen/X86/select.ll,
      we now generate this for foldSel3:
      
      foldSel3:
              mov %AL, BYTE PTR [%ESP + 4]
              fld DWORD PTR [%ESP + 8]
              fld DWORD PTR [%ESP + 12]
              mov %EAX, DWORD PTR [%ESP + 16]
              mov %ECX, DWORD PTR [%ESP + 20]
              cmp %EAX, %ECX
              fxch %ST(1)
              fcmovae %ST(0), %ST(1)
      ***     fstp %ST(1)
              ret
      
      Instead of:
      
      foldSel3:
              mov %AL, BYTE PTR [%ESP + 4]
              fld DWORD PTR [%ESP + 8]
              fld DWORD PTR [%ESP + 12]
              mov %EAX, DWORD PTR [%ESP + 16]
              mov %ECX, DWORD PTR [%ESP + 20]
              cmp %EAX, %ECX
              fxch %ST(1)
              fcmovae %ST(0), %ST(1)
      ***     fxch %ST(1)
      ***     fstp %ST(0)
              ret
      
      In practice, this only effects code size: performance should be basically
      unaffected.
      
      llvm-svn: 12588
      bc7e35b3
    • Chris Lattner's avatar
      Add support for floating point conditional move instructions · c07c9581
      Chris Lattner authored
      llvm-svn: 12576
      c07c9581
  8. Feb 29, 2004
  9. Feb 15, 2004
  10. Feb 14, 2004
  11. Feb 12, 2004
  12. Feb 10, 2004
  13. Feb 03, 2004
  14. Feb 02, 2004
  15. Jan 30, 2004
  16. Dec 20, 2003
  17. Dec 14, 2003
  18. Dec 13, 2003
    • Alkis Evlogimenos's avatar
      Add a floating point killer pass. This pass runs before register · 904cd6d4
      Alkis Evlogimenos authored
      allocaton on the X86 to add information to the machine code denoting
      that our floating point stackifier cannot handle virtual point
      register that are alive across basic blocks. This pass adds an
      implicit def of all virtual floating point register at the end of each
      basic block.
      
      llvm-svn: 10446
      904cd6d4
  19. Nov 11, 2003
  20. Oct 20, 2003
  21. Oct 10, 2003
  22. Aug 18, 2003
  23. Aug 13, 2003
  24. Aug 03, 2003
  25. Aug 02, 2003
  26. Jun 27, 2003
    • Brian Gaeke's avatar
      Nice tasty llc fixes. These should fix LLC for x86 for everything in · c1e4ee0f
      Brian Gaeke authored
      SingleSource except oopack and Oscar.  (Sorry, Oscar.)
      
      include/llvm/Target/TargetInstrInfo.h: Remove virtual print method. Add
       accessors for ImplicitUses/Defs.
      lib/Target/TargetInstrInfo.cpp: Remove virtual print method. If you
       really wanted this, just use MI->print(O, TM); instead...
      lib/Target/X86:
      FloatingPoint.cpp: ...like this.
      X86InstrInfo.h: Remove virtual print method. Define the PrintImplUses
       target-specific flag bit.
      X86InstrInfo.def: Add the PrintImplUses flag to all the instructions
       which implicitly use CL, because the assembler needs to see the CL in
       order to generate the right instruction.
      Printer.cpp: Ditch fnIndex at Chris's request. Now we use CurrentFnName
        to name constants in the constant pool for each function instead. This
        avoids keeping state between runOnMachineFunction() invocations, which
        is a no-no. Having MangledGlobals be global is a bogon I'd like to get
        rid of too, but making it a static member of Printer causes link errors
        (why???).
       Make NumberForBB into a member of Printer instead of a global, too.
       Make printOp and printMemReference into methods of Printer.
       X86InstrInfo::print is now Printer::printMachineInstruction, because
        TargetInstrInfo::print is history. (Because of this, we have to qualify
        the names of some TargetInstrInfo methods we call.)
       Print out the ImplicitUses field of any instruction we print that has
        the PrintImplUses bit set.
      
      llvm-svn: 6924
      c1e4ee0f
  27. Jan 14, 2003
  28. Jan 13, 2003
Loading