Skip to content
  1. Jan 10, 2012
  2. Jan 09, 2012
  3. Jan 08, 2012
  4. Jan 07, 2012
  5. Jan 06, 2012
  6. Jan 05, 2012
    • Craig Topper's avatar
      Mark scalar FMA4 instructions as ignoring the VEX.L bit. · 29b07374
      Craig Topper authored
      llvm-svn: 147602
      29b07374
    • Victor Umansky's avatar
      Peephole optimization of ptest-conditioned branch in X86 arch. Performs... · 9255b6d9
      Victor Umansky authored
      Peephole optimization of ptest-conditioned branch in X86 arch. Performs instruction combining of sequences generated by ptestz/ptestc intrinsics to ptest+jcc pair for SSE and AVX.
      
      Testing: passed 'make check' including LIT tests for all sequences being handled (both SSE and AVX)
      
      Reviewers: Evan Cheng, David Blaikie, Bruno Lopes, Elena Demikhovsky, Chad Rosier, Anton Korobeynikov
      llvm-svn: 147601
      9255b6d9
    • Bill Wendling's avatar
      Replace the uint64_t -> double convertion algorithm with one that's more efficient. · ac27f0c8
      Bill Wendling authored
      This small bit of ASM code is sufficient to do what the old algorithm did:
      
           movq       %rax,  %xmm0
           punpckldq  (c0),  %xmm0  // c0: (uint4){ 0x43300000U, 0x45300000U, 0U, 0U }
           subpd      (c1),  %xmm0  // c1: (double2){ 0x1.0p52, 0x1.0p52 * 0x1.0p32 }
         #ifdef __SSE3__
           haddpd   %xmm0, %xmm0          
         #else
           pshufd   $0x4e, %xmm0, %xmm1 
           addpd    %xmm1, %xmm0
         #endif
      
      It's arguably faster. One caveat, the 'haddpd' instruction isn't very fast on
      all processors.
      <rdar://problem/7719814>
      
      llvm-svn: 147593
      ac27f0c8
    • Jakob Stoklund Olesen's avatar
      Reapply r146997, "Heed spill slot alignment on ARM." · d110e2a8
      Jakob Stoklund Olesen authored
      Now that canRealignStack() understands frozen reserved registers, it is
      safe to use it for aligned spill instructions.
      
      It will only return true if the registers reserved at the beginning of
      register allocation allow for dynamic stack realignment.
      
      <rdar://problem/10625436>
      
      llvm-svn: 147579
      d110e2a8
    • Jakob Stoklund Olesen's avatar
      Avoid reserving an ARM base pointer during register allocation. · 9cb477db
      Jakob Stoklund Olesen authored
      Once register allocation has started the reserved registers are frozen.
      
      Fix the ARM canRealignStack() hook to respect the frozen register state.
      Now the hook returns false if register allocation was started with frame
      pointer elimination enabled.
      
      It also returns false if register allocation started without a reserved
      base pointer, and stack realignment would require a base pointer.  This
      bug was breaking oggenc on armv6.
      
      No test case, an upcoming patch will use this functionality to realign
      the stack for spill slots when possible.
      
      llvm-svn: 147578
      9cb477db
  7. Jan 04, 2012
Loading