Skip to content
  1. Sep 27, 2012
  2. Sep 17, 2012
  3. Sep 12, 2012
  4. Sep 06, 2012
  5. Aug 01, 2012
  6. Jun 02, 2012
  7. Mar 27, 2012
  8. Mar 17, 2012
  9. Mar 09, 2012
  10. Feb 25, 2012
    • NAKAMURA Takumi's avatar
      Target/X86: Fix assertion failures and warnings caused by r151382 _ftol2... · bdf94879
      NAKAMURA Takumi authored
      Target/X86: Fix assertion failures and warnings caused by r151382 _ftol2 lowering for i386-*-win32 targets. Patch by Joe Groff.
      
      [Joe Groff] Hi everyone. My previous patch applied as r151382 had a few problems:
      Clang raised a warning, and X86 LowerOperation would assert out for
      fptoui f64 to i32 because it improperly lowered to an illegal
      BUILD_PAIR. Here's a patch that addresses these issues. Let me know if
      any other changes are necessary. Thanks.
      
      llvm-svn: 151432
      bdf94879
  11. Feb 24, 2012
  12. Aug 12, 2011
  13. Aug 08, 2011
    • Jakob Stoklund Olesen's avatar
      Don't clobber pending ST regs when FP regs are killed. · 4f0ace56
      Jakob Stoklund Olesen authored
      X86FloatingPoint keeps track of pending ST registers for an upcoming
      inline asm instruction with fixed stack register constraints.  It does
      this by remembering which FP register holds the value that should appear
      at a fixed stack position for the inline asm.
      
      When that FP register is killed before the inline asm, make sure to
      duplicate it to a scratch register, so the ST register still has a live
      FP reference.
      
      This could happen when the same FP register was copied to two ST
      registers, or when a spill instruction is inserted between the ST copy
      and the inline asm.
      
      This fixes PR10602.
      
      llvm-svn: 137050
      4f0ace56
  14. Aug 03, 2011
  15. Jul 02, 2011
  16. Jun 30, 2011
  17. Jun 28, 2011
    • Jakob Stoklund Olesen's avatar
      Clean up the handling of the x87 fp stack to make it more robust. · 7297e7e2
      Jakob Stoklund Olesen authored
      Drop the FpMov instructions, use plain COPY instead.
      
      Drop the FpSET/GET instruction for accessing fixed stack positions.
      Instead use normal COPY to/from ST registers around inline assembly, and
      provide a single new FpPOP_RETVAL instruction that can access the return
      value(s) from a call. This is still necessary since you cannot tell from
      the CALL instruction alone if it returns anything on the FP stack. Teach
      fast isel to use this.
      
      This provides a much more robust way of handling fixed stack registers -
      we can tolerate arbitrary FP stack instructions inserted around calls
      and inline assembly. Live range splitting could sometimes break x87 code
      by inserting spill code in unfortunate places.
      
      As a bonus we handle floating point inline assembly correctly now.
      
      llvm-svn: 134018
      7297e7e2
  18. Jun 27, 2011
  19. Apr 15, 2011
  20. Jan 04, 2011
  21. Oct 23, 2010
  22. Oct 21, 2010
  23. Oct 13, 2010
  24. Aug 18, 2010
  25. Aug 16, 2010
  26. Aug 06, 2010
  27. Jul 17, 2010
  28. 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
  29. 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
  30. Jul 09, 2010
  31. 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
Loading