Skip to content
  1. Feb 19, 2011
  2. Feb 18, 2011
  3. Feb 17, 2011
  4. Feb 16, 2011
  5. Feb 15, 2011
  6. Feb 14, 2011
  7. Feb 13, 2011
    • Chris Lattner's avatar
      Enhance ComputeMaskedBits to know that aligned frameindexes · 46c01a30
      Chris Lattner authored
      have their low bits set to zero.  This allows us to optimize
      out explicit stack alignment code like in stack-align.ll:test4 when
      it is redundant.
      
      Doing this causes the code generator to start turning FI+cst into
      FI|cst all over the place, which is general goodness (that is the
      canonical form) except that various pieces of the code generator
      don't handle OR aggressively.  Fix this by introducing a new
      SelectionDAG::isBaseWithConstantOffset predicate, and using it
      in places that are looking for ADD(X,CST).  The ARM backend in
      particular was missing a lot of addressing mode folding opportunities
      around OR.
      
      llvm-svn: 125470
      46c01a30
    • Reid Kleckner's avatar
      Add encodings and mnemonics for FXSAVE64 and FXRSTOR64. · 2406b7d1
      Reid Kleckner authored
      These are just FXSAVE and FXRSTOR with REX.W prefixes.  These versions use
      64-bit pointer values instead of 32-bit pointer values in the memory map they
      dump and restore.
      
      llvm-svn: 125446
      2406b7d1
  8. Feb 12, 2011
  9. Feb 11, 2011
    • Nate Begeman's avatar
      Implement sdiv & udiv for <4 x i16> and <8 x i8> NEON vector types. · fa62d504
      Nate Begeman authored
      This avoids moving each element to the integer register file and calling __divsi3 etc. on it.
      
      llvm-svn: 125402
      fa62d504
    • Rafael Espindola's avatar
      Remove std::string version of getNameWithPrefix. · 34b59389
      Rafael Espindola authored
      llvm-svn: 125363
      34b59389
    • Evan Cheng's avatar
      Fix buggy fcopysign lowering. · 2da1c959
      Evan Cheng authored
      This
      define float @foo(float %x, float %y) nounwind readnone {
      entry:
        %0 = tail call float @copysignf(float %x, float %y) nounwind readnone
        ret float %0
      }
      
      Was compiled to:
          vmov     s0, r1
          bic      r0, r0, #-2147483648
          vmov     s1, r0
          vcmpe.f32    s0, #0
          vmrs         apsr_nzcv, fpscr
          it           lt
          vneglt.f32   s1, s1
          vmov         r0, s1
          bx           lr
      
      This fails to copy the sign of -0.0f because it's lost during the float to int
      conversion. Also, it's sub-optimal when the inputs are in GPR registers.
      
      Now it uses integer and + or operations when it's profitable. And it's correct!
          lsrs    r1, r1, #31
          bfi     r0, r1, #31, #1
          bx      lr
      rdar://8984306
      
      llvm-svn: 125357
      2da1c959
    • David Greene's avatar
      · 79827a5a
      David Greene authored
      [AVX] Implement 256-bit vector lowering for SCALAR_TO_VECTOR.  This
      largely completes support for 128-bit fallback lowering for code that
      is not 256-bit ready.
      
      llvm-svn: 125315
      79827a5a
  10. Feb 10, 2011
Loading