Skip to content
  1. Aug 24, 2012
  2. Aug 23, 2012
  3. Aug 22, 2012
  4. Aug 21, 2012
  5. Aug 20, 2012
  6. Aug 19, 2012
  7. Aug 18, 2012
    • Jakob Stoklund Olesen's avatar
      Remove the CAND/COR/CXOR custom ISD nodes and their select code. · e1014e7b
      Jakob Stoklund Olesen authored
      These nodes are no longer needed because the peephole pass can fold
      CMOV+AND into ANDCC etc.
      
      llvm-svn: 162179
      e1014e7b
    • Craig Topper's avatar
      Remove virtual from many methods. These methods replace methods in the base... · fd1c9259
      Craig Topper authored
      Remove virtual from many methods. These methods replace methods in the base class, but the base class methods aren't virtual so it just increased call overhead.
      
      llvm-svn: 162178
      fd1c9259
    • Jakob Stoklund Olesen's avatar
      Also combine zext/sext into selects for ARM. · dded061f
      Jakob Stoklund Olesen authored
      This turns common i1 patterns into predicated instructions:
      
        (add (zext cc), x) -> (select cc (add x, 1), x)
        (add (sext cc), x) -> (select cc (add x, -1), x)
      
      For a function like:
      
        unsigned f(unsigned s, int x) {
          return s + (x>0);
        }
      
      We now produce:
      
        cmp r1, #0
        it  gt
        addgt.w r0, r0, #1
      
      Instead of:
      
        movs  r2, #0
        cmp r1, #0
        it  gt
        movgt r2, #1
        add r0, r2
      
      llvm-svn: 162177
      dded061f
    • Jakob Stoklund Olesen's avatar
      Also pass logical ops to combineSelectAndUse. · aab43dbf
      Jakob Stoklund Olesen authored
      Add these transformations to the existing add/sub ones:
      
        (and (select cc, -1, c), x) -> (select cc, x, (and, x, c))
        (or  (select cc, 0, c), x)  -> (select cc, x, (or, x, c))
        (xor (select cc, 0, c), x)  -> (select cc, x, (xor, x, c))
      
      The selects can then be transformed to a single predicated instruction
      by peephole.
      
      This transformation will make it possible to eliminate the ISD::CAND,
      COR, and CXOR custom DAG nodes.
      
      llvm-svn: 162176
      aab43dbf
Loading