Skip to content
  1. Aug 18, 2010
  2. Aug 16, 2010
  3. Aug 06, 2010
  4. Jul 17, 2010
  5. Jul 16, 2010
    • Jakob Stoklund Olesen's avatar
    • Jakob Stoklund Olesen's avatar
      Allow x87 FP registers to be alive globally in a function. · 0e5fb020
      Jakob Stoklund Olesen authored
      FP_REG_KILL instructions are still inserted, but can be disabled by passing
      -live-x87 to llc. The X87FPRegKillInserterPass is going to be removed shortly.
      
      CFG edges are partioned into bundles where the x87 stack must be allocated
      identically. Code is insertad at the end of each basic block that shuffles the
      live FP registers to match the outgoing bundles expectations.
      
      This fix is in preparation for some upcoming register allocator improvements
      that may extend the live range of registers beyond a basic block, similar to
      LICM. It also provides a nice runtime speedup if you are building with
      -mfpmath=387.
      
      llvm-svn: 108529
      0e5fb020
  6. Jul 10, 2010
    • Jakob Stoklund Olesen's avatar
      Don't emit st(0)/st(1) copies as FpMOV instructions. Use FpSET_ST? instead. · de457896
      Jakob Stoklund Olesen authored
      Based on a patch by Rafael Espíndola.
      
      Attempt to make the FpSET_ST1 hack more robust, but we are still relying on
      FpSET_ST0 preceeding it. This is only for supporting really weird x87 inline
      asm.
      
      We support:
      
        FpSET_ST0
        INLINEASM
      
        FpSET_ST0
        FpSET_ST1
        INLINEASM
      
      with and without kills on the arguments. We don't support:
      
        FpSET_ST1
        FpSET_ST0
        INLINEASM
      
      nor
      
        FpSET_ST1
        INLINEASM
      
      Just Don't Do It!
      
      llvm-svn: 108047
      de457896
  7. Jul 09, 2010
  8. Jul 08, 2010
    • Jakob Stoklund Olesen's avatar
      Teach the x86 floating point stackifier to handle COPY instructions. · 63a622b7
      Jakob Stoklund Olesen authored
      This pass runs before COPY instructions are passed to copyPhysReg, so we simply
      translate COPY to the proper pseudo instruction. Note that copyPhysReg does not
      handle floating point stack copies.
      
      Once COPY is used everywhere, this can be cleaned up a bit, and most of the
      pseudo instructions can be removed.
      
      llvm-svn: 107899
      63a622b7
  9. Jun 22, 2010
  10. Jun 09, 2010
  11. Jun 05, 2010
    • Chris Lattner's avatar
      revert r105521, which is breaking the buildbots with stuff like this: · fdd26143
      Chris Lattner authored
      In file included from X86InstrInfo.cpp:16:
      X86GenInstrInfo.inc:2789: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2790: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2792: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2793: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2808: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2809: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2816: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2817: error: integer constant is too large for 'long' type
      
      llvm-svn: 105524
      fdd26143
    • Bruno Cardoso Lopes's avatar
      Initial AVX support for some instructions. No patterns matched · 594fa263
      Bruno Cardoso Lopes authored
      yet, only assembly encoding support.
      
      llvm-svn: 105521
      594fa263
  12. Apr 28, 2010
  13. Feb 09, 2010
  14. Jan 05, 2010
  15. Dec 03, 2009
  16. Oct 25, 2009
  17. Sep 08, 2009
  18. Aug 23, 2009
  19. Aug 03, 2009
  20. Aug 01, 2009
  21. Jul 14, 2009
  22. Jul 11, 2009
    • Torok Edwin's avatar
      assert(0) -> LLVM_UNREACHABLE. · 56d06597
      Torok Edwin authored
      Make llvm_unreachable take an optional string, thus moving the cerr<< out of
      line.
      LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
      NDEBUG builds.
      
      llvm-svn: 75379
      56d06597
  23. Jun 30, 2009
    • Rafael Espindola's avatar
      Fix PR4485. · 317fd045
      Rafael Espindola authored
      Avoid unnecessary duplication of operand 0 of X86::FpSET_ST0_80. This duplication would
      cause one register to remain on the stack at the function return.
      
      llvm-svn: 74534
      317fd045
    • Rafael Espindola's avatar
      Fix PR4484. · bd971ffc
      Rafael Espindola authored
      This was caused by me confounding FP0 and ST(0).
      
      llvm-svn: 74523
      bd971ffc
  24. Jun 29, 2009
    • Rafael Espindola's avatar
      FIX PR 4459. · 538064d6
      Rafael Espindola authored
      Not sure I understand how the temp register gets used,
      but this fixes a bug and introduces no regressions.
      
      llvm-svn: 74446
      538064d6
  25. Jun 21, 2009
    • Rafael Espindola's avatar
      Fix PR4185. · 6ead59f8
      Rafael Espindola authored
      Handle FpSET_ST0_80 being used when ST0 is still alive.
      
      llvm-svn: 73850
      6ead59f8
  26. Mar 28, 2009
  27. Mar 23, 2009
  28. Feb 13, 2009
  29. Feb 10, 2009
  30. Oct 03, 2008
Loading