Skip to content
  1. Jan 05, 2007
  2. Jan 04, 2007
  3. Jan 03, 2007
  4. Dec 31, 2006
    • Reid Spencer's avatar
      Fix a typo. · e8a74ee5
      Reid Spencer authored
      llvm-svn: 32803
      e8a74ee5
    • Reid Spencer's avatar
      For PR950: · c635f47d
      Reid Spencer authored
      This patch replaces signed integer types with signless ones:
      1. [US]Byte -> Int8
      2. [U]Short -> Int16
      3. [U]Int   -> Int32
      4. [U]Long  -> Int64.
      5. Removal of isSigned, isUnsigned, getSignedVersion, getUnsignedVersion
         and other methods related to signedness. In a few places this warranted
         identifying the signedness information from other sources.
      
      llvm-svn: 32785
      c635f47d
  5. Dec 24, 2006
    • Reid Spencer's avatar
      For PR1066: · 193df25e
      Reid Spencer authored
      Fix this by ensuring that a bitcast is inserted to do sign switching. This
      is only temporarily needed as the merging of signed and unsigned is next
      on the SignlessTypes plate.
      
      llvm-svn: 32757
      193df25e
  6. Dec 23, 2006
  7. Dec 20, 2006
  8. Dec 19, 2006
  9. Dec 18, 2006
  10. Dec 15, 2006
  11. Dec 13, 2006
  12. Dec 12, 2006
  13. Dec 11, 2006
    • Chris Lattner's avatar
      trunc to integer, not to FP. · e810140c
      Chris Lattner authored
      llvm-svn: 32426
      e810140c
    • Chris Lattner's avatar
      implement promotion of unions containing two packed types of the same width. · 23f4b68f
      Chris Lattner authored
      This implements Transforms/ScalarRepl/union-packed.ll
      
      llvm-svn: 32422
      23f4b68f
    • Chris Lattner's avatar
      * Eliminate calls to CastInst::createInferredCast. · 216c3028
      Chris Lattner authored
       * Add support for promoting unions with fp values in them.  This produces
         our new int<->fp bitcast instructions, implementing
         Transforms/ScalarRepl/union-fp-int.ll
      
      As an example, this allows us to compile this:
      
      union intfloat { int i; float f; };
      float invsqrt(const float arg_x) {
          union intfloat x = { .f = arg_x };
          const float xhalf = arg_x * 0.5f;
          x.i = 0x5f3759df - (x.i >> 1);
          return x.f * (1.5f - xhalf * x.f * x.f);
      }
      
      into:
      
      _invsqrt:
              movss 4(%esp), %xmm0
              movd %xmm0, %eax
              sarl %eax
              movl $1597463007, %ecx
              subl %eax, %ecx
              movd %ecx, %xmm1
              mulss LCPI1_0, %xmm0
              mulss %xmm1, %xmm0
              movss LCPI1_1, %xmm2
              mulss %xmm1, %xmm0
              subss %xmm0, %xmm2
              movl 8(%esp), %eax
              mulss %xmm2, %xmm1
              movss %xmm1, (%eax)
              ret
      
      instead of:
      
      _invsqrt:
              subl $4, %esp
              movss 8(%esp), %xmm0
              movss %xmm0, (%esp)
              movl (%esp), %eax
              movl $1597463007, %ecx
              sarl %eax
              subl %eax, %ecx
              movl %ecx, (%esp)
              mulss LCPI1_0, %xmm0
              movss (%esp), %xmm1
              mulss %xmm1, %xmm0
              mulss %xmm1, %xmm0
              movss LCPI1_1, %xmm2
              subss %xmm0, %xmm2
              mulss %xmm2, %xmm1
              movl 12(%esp), %eax
              movss %xmm1, (%eax)
              addl $4, %esp
              ret
      
      llvm-svn: 32418
      216c3028
  14. Dec 08, 2006
  15. Dec 07, 2006
  16. Dec 06, 2006
Loading