Skip to content
  1. Apr 12, 2013
  2. Apr 11, 2013
    • Preston Gurd's avatar
      Use FileCheck instead of grep. · 6bda0db2
      Preston Gurd authored
      llvm-svn: 179322
      6bda0db2
    • David Majnemer's avatar
      Optimize icmp involving addition better · b81cd63c
      David Majnemer authored
      Allows LLVM to optimize sequences like the following:
      
      %add = add nsw i32 %x, 1
      %cmp = icmp sgt i32 %add, %y
      
      into:
      
      %cmp = icmp sge i32 %x, %y
      
      as well as:
      
      %add1 = add nsw i32 %x, 20
      %add2 = add nsw i32 %y, 57
      %cmp = icmp sge i32 %add1, %add2
      
      into:
      
      %add = add nsw i32 %y, 37
      %cmp = icmp sle i32 %cmp, %x
      
      llvm-svn: 179316
      b81cd63c
    • Jack Carter's avatar
      Mips specific inline asm memory operand modifier test case · a16fa808
      Jack Carter authored
      These changes are based on commit responses for r179135.
      
      llvm-svn: 179315
      a16fa808
    • Rafael Espindola's avatar
      e2742a03
    • Rafael Espindola's avatar
      Print more information about relocations. · 708a44d4
      Rafael Espindola authored
      With this patch llvm-readobj now prints if a relocation is pcrel, its length,
      if it is extern and if it is scattered.
      
      It also refactors the code a bit to use bit fields instead of shifts and
      masks all over the place.
      
      llvm-svn: 179294
      708a44d4
    • Benjamin Kramer's avatar
      Fix for wrong instcombine on vector insert/extract · a95f8749
      Benjamin Kramer authored
      When trying to collapse sequences of insertelement/extractelement
      instructions into single shuffle instructions, there is one specific
      case where the Instruction Combiner wrongly updates the resulting
      Mask of shuffle indexes.
      
      The problem is in function CollectShuffleElments.
      
      If we have a sequence of insert/extract element instructions
      like the one below:
      
        %tmp1 = extractelement <4 x float> %LHS, i32 0
        %tmp2 = insertelement <4 x float> %RHS, float %tmp1, i32 1
        %tmp3 = extractelement <4 x float> %RHS, i32 2
        %tmp4 = insertelement <4 x float> %tmp2, float %tmp3, i32 3
      
      Where:
        . %RHS will have a mask of [4,5,6,7]
        . %LHS will have a mask of [0,1,2,3]
      
      The Mask of shuffle indexes is wrongly computed to [4,1,6,7]
      instead of [4,0,6,7].
      When analyzing %tmp2 in order to compute the Mask for the
      resulting shuffle instruction, the algorithm forgets to update
      the mask index at position 1 with the index associated to the
      element extracted from %LHS by instruction %tmp1.
      
      Patch by Andrea DiBiagio!
      
      llvm-svn: 179291
      a95f8749
    • Eli Bendersky's avatar
      Add a CHECK-NOT for a more faithful translation of the original grep | count 2. · 0840082c
      Eli Bendersky authored
      Thanks to Reid Kleckner for catching this.
      
      llvm-svn: 179289
      0840082c
    • Benjamin Kramer's avatar
      Add missing colons to check lines. · b50682e1
      Benjamin Kramer authored
      llvm-svn: 179277
      b50682e1
    • Benjamin Kramer's avatar
      FileCheckize a bunch of tests. · 3960c1cd
      Benjamin Kramer authored
      llvm-svn: 179276
      3960c1cd
    • Michael Liao's avatar
      Optimize vector select from all 0s or all 1s · 55658d42
      Michael Liao authored
      As packed comparisons in AVX/SSE produce all 0s or all 1s in each SIMD lane,
      vector select could be simplified to AND/OR or removed if one or both values
      being selected is all 0s or all 1s.
      
      llvm-svn: 179267
      55658d42
    • Michael Liao's avatar
      Add CLAC/STAC instruction encoding/decoding support · 95d94403
      Michael Liao authored
      As these two instructions in AVX extension are privileged instructions for
      special purpose, it's only expected to be used in inlined assembly.
      
      llvm-svn: 179266
      95d94403
    • Michael Liao's avatar
      Enhance bool simplifcation in X86 to handle more cases · f7bf8705
      Michael Liao authored
      This patch is revised based on patch from Victor Umansky
      <victor.umansky@intel.com>. More cases are handled in X86's bool
      simplification, i.e.
      - SETCC_CARRY
      - value is truncated to i1 with AND
      
      As a by-product, PR5443 is also fixed.
      
      llvm-svn: 179265
      f7bf8705
    • Rafael Espindola's avatar
      Add MachO-x86-64 tests. · 1d532a30
      Rafael Espindola authored
      The object was already checked in, but was not being tested.
      
      llvm-svn: 179256
      1d532a30
    • Eli Bendersky's avatar
      1dceb3c9
    • Nico Rieck's avatar
      MC: Support COFF image-relative MCSymbolRefs · 1da4529b
      Nico Rieck authored
      Add support for the COFF relocation types IMAGE_REL_I386_DIR32NB and
      IMAGE_REL_AMD64_ADDR32NB for 32- and 64-bit respectively. These are
      similar to normal 4-byte relocations except that they do not include
      the base address of the image.
      
      Image-relative relocations are used for debug information (32-bit) and
      SEH unwind tables (64-bit).
      
      A new MCSymbolRef variant called 'VK_COFF_IMGREL32' is introduced to
      specify such relocations. For AT&T assembly, this variant can be accessed
      using the symbol suffix '@imgrel'.
      
      llvm-svn: 179240
      1da4529b
    • Hal Finkel's avatar
      Manually remove successors in if conversion when CopyAndPredicateBlock is used · 95081bff
      Hal Finkel authored
      In the simple and triangle if-conversion cases, when CopyAndPredicateBlock is
      used because the to-be-predicated block has other predecessors, we need to
      explicitly remove the old copied block from the successors list. Normally if
      conversion relies on TII->AnalyzeBranch combined with BB->CorrectExtraCFGEdges
      to cleanup the successors list, but if the predicated block contained an
      un-analyzable branch (such as a now-predicated return), then this will fail.
      
      These extra successors were causing a problem on PPC because it was causing
      later passes (such as PPCEarlyReturm) to leave dead return-only basic blocks in
      the code.
      
      llvm-svn: 179227
      95081bff
    • Jack Carter's avatar
      Mips specific inline asm memory operand modifier test case · b6bcdfd2
      Jack Carter authored
      These changes are based on commit responses for r179135.
      
      llvm-svn: 179225
      b6bcdfd2
  3. Apr 10, 2013
  4. Apr 09, 2013
Loading