Skip to content
  1. Oct 10, 2007
  2. Aug 25, 2007
  3. Aug 02, 2007
  4. Jul 30, 2007
  5. Jun 22, 2007
  6. Apr 03, 2007
  7. Mar 31, 2007
  8. Mar 25, 2007
  9. Mar 13, 2007
  10. Mar 01, 2007
  11. Feb 27, 2007
  12. Feb 25, 2007
  13. Jan 26, 2007
  14. Nov 16, 2006
    • Jim Laskey's avatar
      · 48850c10
      Jim Laskey authored
      This is a general clean up of the PowerPC ABI.  Address several problems and
      bugs including making sure that the TOS links back to the previous frame,
      that the maximum call frame size is not included twice when using frame
      pointers, no longer growing the frame on calls, double storing of SP and
      a cleaner/faster dynamic alloca.
      
      llvm-svn: 31792
      48850c10
  15. Nov 09, 2006
  16. Nov 08, 2006
  17. Nov 02, 2006
    • Chris Lattner's avatar
      Implement the getRegForInlineAsmConstraint method for PPC. With recent · 584a11ae
      Chris Lattner authored
      sdisel changes, this eliminates a ton of copies around common inline asms.
      For example:
      
      int test2(int Y, int X) {
        asm("foo %0, %1" : "=r"(X): "r"(X));
        return X;
      }
      
      now compiles to:
      
      _test2:
              foo r3, r4
              blr
      
      instead of:
      
      _test2:
              mr r2, r4
              foo r2, r2
              mr r3, r2
              blr
      
      GCC produces:
      
      _test2:
              foo r4, r4
              mr r3,r4
              blr
      
      llvm-svn: 31367
      584a11ae
  18. Oct 31, 2006
  19. Aug 28, 2006
    • Reid Spencer's avatar
      For PR387: · e7141c8b
      Reid Spencer authored
      Close out this long standing bug by removing the remaining overloaded
      virtual functions in LLVM. The -Woverloaded-virtual option is now turned on.
      
      llvm-svn: 29934
      e7141c8b
  20. Jul 10, 2006
  21. May 17, 2006
  22. May 16, 2006
  23. Apr 18, 2006
    • Chris Lattner's avatar
      Implement an important entry from README_ALTIVEC: · 9754d142
      Chris Lattner authored
      If an altivec predicate compare is used immediately by a branch, don't
      use a (serializing) MFCR instruction to read the CR6 register, which requires
      a compare to get it back to CR's.  Instead, just branch on CR6 directly. :)
      
      For example, for:
      void foo2(vector float *A, vector float *B) {
        if (!vec_any_eq(*A, *B))
          *B = (vector float){0,0,0,0};
      }
      
      We now generate:
      
      _foo2:
              mfspr r2, 256
              oris r5, r2, 12288
              mtspr 256, r5
              lvx v2, 0, r4
              lvx v3, 0, r3
              vcmpeqfp. v2, v3, v2
              bne cr6, LBB1_2 ; UnifiedReturnBlock
      LBB1_1: ; cond_true
              vxor v2, v2, v2
              stvx v2, 0, r4
              mtspr 256, r2
              blr
      LBB1_2: ; UnifiedReturnBlock
              mtspr 256, r2
              blr
      
      instead of:
      
      _foo2:
              mfspr r2, 256
              oris r5, r2, 12288
              mtspr 256, r5
              lvx v2, 0, r4
              lvx v3, 0, r3
              vcmpeqfp. v2, v3, v2
              mfcr r3, 2
              rlwinm r3, r3, 27, 31, 31
              cmpwi cr0, r3, 0
              beq cr0, LBB1_2 ; UnifiedReturnBlock
      LBB1_1: ; cond_true
              vxor v2, v2, v2
              stvx v2, 0, r4
              mtspr 256, r2
              blr
      LBB1_2: ; UnifiedReturnBlock
              mtspr 256, r2
              blr
      
      This implements CodeGen/PowerPC/vec_br_cmp.ll.
      
      llvm-svn: 27804
      9754d142
  24. Apr 12, 2006
    • Chris Lattner's avatar
      Rename get_VSPLI_elt -> get_VSPLTI_elt · 74cf9ff7
      Chris Lattner authored
      Canonicalize BUILD_VECTOR's that match VSPLTI's into a single type for each
      form, eliminating a bunch of Pat patterns in the .td file and allowing us to
      CSE stuff more aggressively.  This implements
      PowerPC/buildvec_canonicalize.ll:VSPLTI
      
      llvm-svn: 27614
      74cf9ff7
  25. Apr 08, 2006
  26. Apr 07, 2006
  27. Apr 06, 2006
  28. Apr 04, 2006
  29. Apr 02, 2006
  30. Mar 31, 2006
  31. Mar 28, 2006
  32. Mar 26, 2006
  33. Mar 25, 2006
    • Chris Lattner's avatar
      Codegen things like: · 2771e2c9
      Chris Lattner authored
       <int -1, int -1, int -1, int -1>
      and
       <int 65537, int 65537, int 65537, int 65537>
      
      Using things like:
        vspltisb v0, -1
      and:
        vspltish v0, 1
      
      instead of using constant pool loads.
      
      This implements CodeGen/PowerPC/vec_splat.ll:splat_imm_i{32|16}.
      
      llvm-svn: 27106
      2771e2c9
  34. Mar 24, 2006
  35. Mar 22, 2006
    • Chris Lattner's avatar
      When possible, custom lower 32-bit SINT_TO_FP to this: · 4a66d694
      Chris Lattner authored
      _foo2:
              extsw r2, r3
              std r2, -8(r1)
              lfd f0, -8(r1)
              fcfid f0, f0
              frsp f1, f0
              blr
      
      instead of this:
      
      _foo2:
              lis r2, ha16(LCPI2_0)
              lis r4, 17200
              xoris r3, r3, 32768
              stw r3, -4(r1)
              stw r4, -8(r1)
              lfs f0, lo16(LCPI2_0)(r2)
              lfd f1, -8(r1)
              fsub f0, f1, f0
              frsp f1, f0
              blr
      
      This speeds up Misc/pi from 2.44s->2.09s with LLC and from 3.01->2.18s
      with llcbeta (16.7% and 38.1% respectively).
      
      llvm-svn: 26943
      4a66d694
Loading