Skip to content
  1. Jul 16, 2005
    • Chris Lattner's avatar
      Major refactor of the ELFWriter code. Instead of building up one big · fd445004
      Chris Lattner authored
      vector that represents the .o file at once, build up a vector for each
      section of the .o file.  This is needed because the .o file writer needs
      to be able to switch between sections as it emits them (e.g. switch
      between the .text section and the .rel section when emitting code).
      
      This patch has no functionality change.
      
      llvm-svn: 22453
      fd445004
    • Nate Begeman's avatar
      Teach the legalizer how to promote SINT_TO_FP to a wider SINT_TO_FP that · 7e74c834
      Nate Begeman authored
      the target natively supports.  This eliminates some special-case code from
      the x86 backend and generates better code as well.
      
      For an i8 to f64 conversion, before & after:
      
      _x87 before:
              subl $2, %esp
              movb 6(%esp), %al
              movsbw %al, %ax
              movw %ax, (%esp)
              filds (%esp)
              addl $2, %esp
              ret
      
      _x87 after:
              subl $2, %esp
              movsbw 6(%esp), %ax
              movw %ax, (%esp)
              filds (%esp)
              addl $2, %esp
              ret
      
      _sse before:
              subl $12, %esp
              movb 16(%esp), %al
              movsbl %al, %eax
              cvtsi2sd %eax, %xmm0
              addl $12, %esp
              ret
      
      _sse after:
              subl $12, %esp
              movsbl 16(%esp), %eax
              cvtsi2sd %eax, %xmm0
              addl $12, %esp
              ret
      
      llvm-svn: 22452
      7e74c834
    • Nate Begeman's avatar
      Teach the register allocator that movaps is also a move instruction · 8293d0e2
      Nate Begeman authored
      llvm-svn: 22451
      8293d0e2
    • Nate Begeman's avatar
      A couple more darwinisms · 57b9ed52
      Nate Begeman authored
      llvm-svn: 22450
      57b9ed52
    • Chris Lattner's avatar
      Remove all knowledge of UINT_TO_FP from the X86 backend, relying on the · 507a2759
      Chris Lattner authored
      legalizer to eliminate them.  With this comes the expected code quality
      improvements, such as, for this:
      
      double foo(unsigned short X) { return X; }
      
      we now generate this:
      
      _foo:
              subl $4, %esp
              movzwl 8(%esp), %eax
              movl %eax, (%esp)
              fildl (%esp)
              addl $4, %esp
              ret
      
      instead of this:
      
      _foo:
              subl $4, %esp
              movw 8(%esp), %ax
              movzwl %ax, %eax   ;; Load not folded into this.
              movl %eax, (%esp)
              fildl (%esp)
              addl $4, %esp
              ret
      
      -Chris
      
      llvm-svn: 22449
      507a2759
    • Chris Lattner's avatar
      Break the code for expanding UINT_TO_FP operations out into its own · e3e847bf
      Chris Lattner authored
      SelectionDAGLegalize::ExpandLegalUINT_TO_FP method.
      
      Add a new method, PromoteLegalUINT_TO_FP, which allows targets to request
      that UINT_TO_FP operations be promoted to a larger input type.  This is
      useful for targets that have some UINT_TO_FP or SINT_TO_FP operations but
      not all of them (like X86).
      
      The same should be done with SINT_TO_FP, but this patch does not do that
      yet.
      
      llvm-svn: 22447
      e3e847bf
    • Chris Lattner's avatar
      You can't use config options without config.h · b47f5e6d
      Chris Lattner authored
      llvm-svn: 22446
      b47f5e6d
  2. Jul 15, 2005
  3. Jul 14, 2005
  4. Jul 13, 2005
  5. Jul 12, 2005
  6. Jul 11, 2005
Loading