Skip to content
  1. Jan 09, 2005
    • Chris Lattner's avatar
    • Chris Lattner's avatar
      Add a simple transformation. This allows us to compile one of the inner · 3d5d5022
      Chris Lattner authored
      loops in stepanov to this:
      
      .LBB_Z5test0PdS__2:     # no_exit.1
              fldl data(,%eax,8)
              fldl 24(%esp)
              faddp %st(1)
              fstl 24(%esp)
              incl %eax
              cmpl $2000, %eax
              fstpl 16(%esp)
              #FP_REG_KILL
              jl .LBB_Z5test0PdS__2
      
      instead of this:
      
      .LBB_Z5test0PdS__2:     # no_exit.1
              fldl data(,%eax,8)
              fldl 24(%esp)
              faddp %st(1)
              fstl 24(%esp)
              incl %eax
              movl $data, %ecx
              movl %ecx, %edx
              addl $16000, %edx
              subl %ecx, %edx
              movl %edx, %ecx
              sarl $2, %ecx
              shrl $29, %ecx
              addl %ecx, %edx
              sarl $3, %edx
              cmpl %edx, %eax
              fstpl 16(%esp)
              #FP_REG_KILL
              jl .LBB_Z5test0PdS__2
      
      The old instruction selector produced:
      
      .LBB_Z5test0PdS__2:     # no_exit.1
              fldl 24(%esp)
              faddl data(,%eax,8)
              fstl 24(%esp)
              movl %eax, %ecx
              incl %ecx
              incl %eax
              leal data+16000, %edx
              movl $data, %edi
              subl %edi, %edx
              movl %edx, %edi
              sarl $2, %edi
              shrl $29, %edi
              addl %edi, %edx
              sarl $3, %edx
              cmpl %edx, %ecx
              fstpl 16(%esp)
              #FP_REG_KILL
              jl .LBB_Z5test0PdS__2   # no_exit.1
      
      Which is even worse!
      
      llvm-svn: 19419
      3d5d5022
  2. Jan 08, 2005
  3. Jan 07, 2005
  4. Jul 04, 2004
  5. Jun 17, 2004
  6. Jun 02, 2004
  7. Nov 11, 2003
  8. Oct 20, 2003
  9. Aug 15, 2003
  10. Aug 11, 2003
Loading