Skip to content
  1. 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
  2. Feb 29, 2004
  3. Feb 15, 2004
  4. Feb 14, 2004
  5. Feb 12, 2004
  6. Feb 10, 2004
  7. Feb 03, 2004
  8. Feb 02, 2004
  9. Jan 30, 2004
  10. Dec 20, 2003
  11. Dec 14, 2003
  12. 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
  13. Nov 11, 2003
  14. Oct 20, 2003
  15. Oct 10, 2003
  16. Aug 18, 2003
  17. Aug 13, 2003
  18. Aug 03, 2003
  19. Aug 02, 2003
  20. 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
  21. Jan 14, 2003
  22. Jan 13, 2003
Loading