Skip to content
  1. Jul 02, 2008
  2. May 31, 2008
  3. May 13, 2008
  4. May 06, 2008
  5. Apr 24, 2008
  6. Apr 23, 2008
  7. Apr 14, 2008
  8. Apr 08, 2008
  9. Mar 25, 2008
  10. Dec 29, 2007
  11. Oct 11, 2007
  12. Sep 29, 2007
  13. Sep 25, 2007
  14. May 03, 2007
  15. Apr 19, 2007
  16. Jan 29, 2007
  17. Jan 17, 2007
  18. Dec 09, 2006
  19. Sep 08, 2006
  20. Sep 04, 2006
  21. Sep 03, 2006
  22. Aug 29, 2006
  23. Jul 26, 2006
  24. Jul 06, 2006
  25. May 24, 2006
  26. May 23, 2006
  27. May 03, 2006
  28. Mar 23, 2006
  29. Feb 22, 2006
  30. Aug 19, 2005
  31. Jul 06, 2005
    • Nate Begeman's avatar
      First round of support for doing scalar FP using the SSE2 ISA extension and · 8a093360
      Nate Begeman authored
      XMM registers.  There are many known deficiencies and fixmes, which will be
      addressed ASAP.  The major benefit of this work is that it will allow the
      LLVM register allocator to allocate FP registers across basic blocks.
      
      The x86 backend will still default to x87 style FP.  To enable this work,
      you must pass -enable-sse-scalar-fp and either -sse2 or -sse3 to llc.
      
      An example before and after would be for:
      double foo(double *P) { double Sum = 0; int i; for (i = 0; i < 1000; ++i)
                              Sum += P[i]; return Sum; }
      
      The inner loop looks like the following:
      x87:
      .LBB_foo_1:     # no_exit
              fldl (%esp)
              faddl (%eax,%ecx,8)
              fstpl (%esp)
              incl %ecx
              cmpl $1000, %ecx
              #FP_REG_KILL
              jne .LBB_foo_1  # no_exit
      
      SSE2:
              addsd (%eax,%ecx,8), %xmm0
              incl %ecx
              cmpl $1000, %ecx
              #FP_REG_KILL
              jne .LBB_foo_1  # no_exit
      
      llvm-svn: 22340
      8a093360
Loading