Skip to content
  1. Mar 08, 2010
  2. Mar 07, 2010
  3. Mar 06, 2010
  4. Mar 05, 2010
    • Evan Cheng's avatar
      Fix typo. · 27494232
      Evan Cheng authored
      llvm-svn: 97818
      27494232
    • Chris Lattner's avatar
      fix bss section printing for cell, patch by Kalle Raiskila! · f0692603
      Chris Lattner authored
      llvm-svn: 97814
      f0692603
    • Wesley Peck's avatar
      Reworking the stack layout that the MicroBlaze backend generates. · 34004170
      Wesley Peck authored
      The MicroBlaze backend was generating stack layouts that did not
      conform correctly to the ABI. This update generates stack layouts
      which are closer to what GCC does.
      
      Variable arguments support was added as well but the stack layout
      for varargs has not been finalized.
      
      llvm-svn: 97807
      34004170
    • Evan Cheng's avatar
      Fix an oops in x86 sibcall optimization. If the ByVal callee argument is... · 654ec2a6
      Evan Cheng authored
      Fix an oops in x86 sibcall optimization. If the ByVal callee argument is itself passed as a pointer, then it's obviously not safe to do a tail call.
      
      llvm-svn: 97797
      654ec2a6
    • Evan Cheng's avatar
    • Johnny Chen's avatar
      Trivial comment change. · 70e01cd0
      Johnny Chen authored
      llvm-svn: 97776
      70e01cd0
    • Bill Wendling's avatar
      Revert r97766. It's deleting a tag. · 543ce1f6
      Bill Wendling authored
      llvm-svn: 97768
      543ce1f6
    • Bill Wendling's avatar
      Micro-optimization: · 6517f88f
      Bill Wendling authored
      This code:
      
      float floatingPointComparison(float x, float y) {
          double product = (double)x * y;
          if (product == 0.0)
              return product;
          return product - 1.0;
      }
      
      produces this:
      
      _floatingPointComparison:
      0000000000000000        cvtss2sd        %xmm1,%xmm1
      0000000000000004        cvtss2sd        %xmm0,%xmm0
      0000000000000008        mulsd           %xmm1,%xmm0
      000000000000000c        pxor            %xmm1,%xmm1
      0000000000000010        ucomisd         %xmm1,%xmm0
      0000000000000014        jne             0x00000004
      0000000000000016        jp              0x00000002
      0000000000000018        jmp             0x00000008
      000000000000001a        addsd           0x00000006(%rip),%xmm0
      0000000000000022        cvtsd2ss        %xmm0,%xmm0
      0000000000000026        ret
      
      The "jne/jp/jmp" sequence can be reduced to this instead:
      
      _floatingPointComparison:
      0000000000000000        cvtss2sd        %xmm1,%xmm1
      0000000000000004        cvtss2sd        %xmm0,%xmm0
      0000000000000008        mulsd           %xmm1,%xmm0
      000000000000000c        pxor            %xmm1,%xmm1
      0000000000000010        ucomisd         %xmm1,%xmm0
      0000000000000014        jp              0x00000002
      0000000000000016        je              0x00000008
      0000000000000018        addsd           0x00000006(%rip),%xmm0
      0000000000000020        cvtsd2ss        %xmm0,%xmm0
      0000000000000024        ret
      
      for a savings of 2 bytes.
      
      This xform can happen when we recognize that jne and jp jump to the same "true"
      MBB, the unconditional jump would jump to the "false" MBB, and the "true" branch
      is the fall-through MBB.
      
      llvm-svn: 97766
      6517f88f
  5. Mar 04, 2010
Loading