Skip to content
  1. Jul 24, 2012
  2. Jul 23, 2012
  3. Jul 21, 2012
  4. Jul 20, 2012
  5. Jul 19, 2012
  6. Jul 18, 2012
    • Manman Ren's avatar
      X86: remove redundant cmp against zero. · d0a4ee84
      Manman Ren authored
      Updated OptimizeCompare in peephole to remove redundant cmp against zero.
      We only remove Compare if CF and OF are not used.
      
      rdar://11855129
      
      llvm-svn: 160454
      d0a4ee84
    • Preston Gurd's avatar
      This patch fixes 8 out of 20 unexpected failures in "make check" · f0a48ec8
      Preston Gurd authored
      when run on an Intel Atom processor. The failures have arisen due
      to changes elsewhere in the trunk over the past 8 weeks or so.
      
      These failures were not detected by the Atom buildbot because the
      CPU on the Atom buildbot was not being detected as an Atom CPU.
      The fix for this problem is in Host.cpp and X86Subtarget.cpp, but
      shall remain commented out until the current set of Atom test failures
      are fixed.
      
      Patch by Andy Zhang and Tyler Nowicki!
      
      llvm-svn: 160451
      f0a48ec8
    • Andrew Trick's avatar
      Fix ARMTargetLowering::isLegalAddImmediate to consider thumb encodings. · a22cdb71
      Andrew Trick authored
      Based on Evan's suggestion without a commitable test.
      
      llvm-svn: 160441
      a22cdb71
    • Andrew Trick's avatar
      whitespace · bc325168
      Andrew Trick authored
      llvm-svn: 160440
      bc325168
    • Nadav Rotem's avatar
      The vbroadcast family of instructions has 'fallback patterns' in case where the · 4c12245b
      Nadav Rotem authored
      load source operand is used by multiple nodes. The v2i64 broadcast was emulated
      by shuffling the two lower i32 elements to the upper two.
      We had a bug in the immediate used for the broadcast.
      Replacing 0 to 0x44.
      0x44 means [01|00|01|00] which corresponds to the correct lane.
      
      Patch by Michael Kuperstein.
      
      llvm-svn: 160430
      4c12245b
    • Jack Carter's avatar
      Mips specific inline asm operand modifier 'M': · a62ba828
      Jack Carter authored
      Print the high order register of a double word register operand.
      
      In 32 bit mode, a 64 bit double word integer will be represented
      by 2 32 bit registers. This modifier causes the high order register
      to be used in the asm expression. It is useful if you are using 
      doubles in assembler and continue to control register to variable
      relationships.
      
      This patch also fixes a related bug in a previous patch:
      
          case 'D': // Second part of a double word register operand
          case 'L': // Low order register of a double word register operand
          case 'M': // High order register of a double word register operand
      
      I got 'D' and 'M' confused. The second part of a double word operand
      will only match 'M' for one of the endianesses. I had 'L' and 'D'
      be the opposite twins when 'L' and 'M' are.
      
      llvm-svn: 160429
      a62ba828
    • Craig Topper's avatar
      Remove tab characters. · 6bf3ed45
      Craig Topper authored
      llvm-svn: 160425
      6bf3ed45
    • Craig Topper's avatar
      Fix typo in error message and remove some tab characters. · 85324232
      Craig Topper authored
      llvm-svn: 160423
      85324232
    • Craig Topper's avatar
      Make x86 asm parser to check for xmm vs ymm for index register in gather... · 01deb5f2
      Craig Topper authored
      Make x86 asm parser to check for xmm vs ymm for index register in gather instructions. Also fix Intel syntax for gather instructions to use 'DWORD PTR' or 'QWORD PTR' to match gas.
      
      llvm-svn: 160420
      01deb5f2
    • Joel Jones's avatar
      More replacing of target-dependent intrinsics with target-indepdent · b84f7bea
      Joel Jones authored
      intrinsics.  The second instruction(s) to be handled are the vector versions 
      of count set bits (ctpop).
      
      The changes here are to clang so that it generates a target independent 
      vector ctpop when it sees an ARM dependent vector bits set count.  The changes 
      in llvm are to match the target independent vector ctpop and in 
      VMCore/AutoUpgrade.cpp to update any existing bc files containing ARM 
      dependent vector pop counts with target-independent ctpops.  There are also 
      changes to an existing test case in llvm for ARM vector count instructions and 
      to a test for the bitcode upgrade.
      
      <rdar://problem/11892519>
      
      There is deliberately no test for the change to clang, as so far as I know, no
      consensus has been reached regarding how to test neon instructions in clang;
      q.v. <rdar://problem/8762292>
      
      llvm-svn: 160410
      b84f7bea
    • Akira Hatanaka's avatar
      Clean up Mips16InstrFormats.td and Mips16InstrInfo.td. · f640f040
      Akira Hatanaka authored
      Patch by Reed Kotler.
      
      llvm-svn: 160403
      f640f040
  7. Jul 17, 2012
  8. Jul 16, 2012
    • Evan Cheng's avatar
      For something like · 75315b87
      Evan Cheng authored
      uint32_t hi(uint64_t res)
      {
              uint_32t hi = res >> 32;
              return !hi;
      }
      
      llvm IR looks like this:
      define i32 @hi(i64 %res) nounwind uwtable ssp {
      entry:
        %lnot = icmp ult i64 %res, 4294967296
        %lnot.ext = zext i1 %lnot to i32
        ret i32 %lnot.ext
      }
      
      The optimizer has optimize away the right shift and truncate but the resulting
      constant is too large to fit in the 32-bit immediate field. The resulting x86
      code is worse as a result:
              movabsq $4294967296, %rax       ## imm = 0x100000000
              cmpq    %rax, %rdi
              sbbl    %eax, %eax
              andl    $1, %eax
      
      This patch teaches the x86 lowering code to handle ult against a large immediate
      with trailing zeros. It will issue a right shift and a truncate followed by
      a comparison against a shifted immediate.
              shrq    $32, %rdi
              testl   %edi, %edi
              sete    %al
              movzbl  %al, %eax
      
      It also handles a ugt comparison against a large immediate with trailing bits
      set. i.e. X >  0x0ffffffff -> (X >> 32) >= 1
      
      rdar://11866926
      
      llvm-svn: 160312
      75315b87
    • Tom Stellard's avatar
      Revert "AMDGPU: Add core backend files for R600/SI codegen v6" · 1be1aa84
      Tom Stellard authored
      This reverts commit 4ea70107c5e51230e9e60f0bf58a0f74aa4885ea.
      
      llvm-svn: 160303
      1be1aa84
    • Tom Stellard's avatar
      Revert "Build script changes for R600/SI Codegen v6" · 95bd0be9
      Tom Stellard authored
      This reverts commit e3013202259ed1e006c21817c63cf25d75982721.
      
      llvm-svn: 160301
      95bd0be9
    • Tom Stellard's avatar
      Revert "Target/AMDGPU/R600KernelParameters.cpp: Fix two includes,... · 151dc338
      Tom Stellard authored
      Revert "Target/AMDGPU/R600KernelParameters.cpp: Fix two includes, <llvm/IRBuilder.h> and <llvm/TypeBuilder.h>"
      
      This reverts commit 0258a6bdd30802f5cc0e8e57c8e768fde2aef590.
      
      llvm-svn: 160299
      151dc338
    • Tom Stellard's avatar
      Revert "Target/AMDGPU: [CMake] Fix dependencies. 1) Add intrinsics_gen. Add AMDGPUCommonTableGen." · 1bd30125
      Tom Stellard authored
      This reverts commit ebc934ba32ee71abbb8f0f2eb6a0fbaa613ba0d2.
      
      llvm-svn: 160298
      1bd30125
Loading