Skip to content
  1. May 20, 2008
    • Dan Gohman's avatar
      Port SelectionDAG's ComputeNumSignBits-using code to instcombine, · 81ab753b
      Dan Gohman authored
      now that instcombine also has ComputeNumSignBits.
      
      llvm-svn: 51350
      81ab753b
    • Matthijs Kooijman's avatar
      Fix typo. · 5148a4ba
      Matthijs Kooijman authored
      llvm-svn: 51303
      5148a4ba
    • Chris Lattner's avatar
      Teach instcombine 4 new xforms: · 7ac943ff
      Chris Lattner authored
        (add (sext x), cst) --> (sext (add x, cst'))
        (add (sext x), (sext y)) --> (sext (add int x, y))
        (add double (sitofp x), fpcst) --> (sitofp (add int x, intcst))
        (add double (sitofp x), (sitofp y)) --> (sitofp (add int x, y))
      
      This generally reduces conversions.  For example MiBench/telecomm-gsm
      gets these simplifications:
      
      HACK2: 	%tmp67.i142.i.i = sext i16 %tmp6.i141.i.i to i32		; <i32> [#uses=1]
      	%tmp23.i139.i.i = sext i16 %tmp2.i138.i.i to i32		; <i32> [#uses=1]
      	%tmp8.i143.i.i = add i32 %tmp67.i142.i.i, %tmp23.i139.i.i		; <i32> [#uses=3]
      HACK2: 	%tmp67.i121.i.i = sext i16 %tmp6.i120.i.i to i32		; <i32> [#uses=1]
      	%tmp23.i118.i.i = sext i16 %tmp2.i117.i.i to i32		; <i32> [#uses=1]
      	%tmp8.i122.i.i = add i32 %tmp67.i121.i.i, %tmp23.i118.i.i		; <i32> [#uses=3]
      HACK2: 	%tmp67.i.i190.i = sext i16 %tmp6.i.i189.i to i32		; <i32> [#uses=1]
      	%tmp23.i.i187.i = sext i16 %tmp2.i.i186.i to i32		; <i32> [#uses=1]
      	%tmp8.i.i191.i = add i32 %tmp67.i.i190.i, %tmp23.i.i187.i		; <i32> [#uses=3]
      HACK2: 	%tmp67.i173.i.i.i = sext i16 %tmp6.i172.i.i.i to i32		; <i32> [#uses=1]
      	%tmp23.i170.i.i.i = sext i16 %tmp2.i169.i.i.i to i32		; <i32> [#uses=1]
      	%tmp8.i174.i.i.i = add i32 %tmp67.i173.i.i.i, %tmp23.i170.i.i.i		; <i32> [#uses=3]
      HACK2: 	%tmp67.i152.i.i.i = sext i16 %tmp6.i151.i.i.i to i32		; <i32> [#uses=1]
      	%tmp23.i149.i.i.i = sext i16 %tmp2.i148.i.i.i to i32		; <i32> [#uses=1]
      	%tmp8.i153.i.i.i = add i32 %tmp67.i152.i.i.i, %tmp23.i149.i.i.i		; <i32> [#uses=3]
      HACK2: 	%tmp67.i.i.i.i = sext i16 %tmp6.i.i.i.i to i32		; <i32> [#uses=1]
      	%tmp23.i.i5.i.i = sext i16 %tmp2.i.i.i.i to i32		; <i32> [#uses=1]
      	%tmp8.i.i7.i.i = add i32 %tmp67.i.i.i.i, %tmp23.i.i5.i.i		; <i32> [#uses=3]
      
      
      This also fixes a bug in ComputeNumSignBits handling select and
      makes it more aggressive with and/or.
      
      llvm-svn: 51302
      7ac943ff
    • Chris Lattner's avatar
      fix two issues Neil noticed, thanks! · 9c27f96d
      Chris Lattner authored
      llvm-svn: 51296
      9c27f96d
    • Dan Gohman's avatar
      Refine the fix in r51169 to only apply when the operand val being · e5572706
      Dan Gohman authored
      replaced is a PHI. This prevents it from inserting uses before defs
      in the case that it isn't a PHI and it depends on other instructions
      later in the block. This fixes the 447.dealII regression on x86-64.
      
      llvm-svn: 51292
      e5572706
    • Dan Gohman's avatar
      Make AssociativeOpt static. · d717761a
      Dan Gohman authored
      llvm-svn: 51290
      d717761a
    • Devang Patel's avatar
      ee7bf41c
    • Dan Gohman's avatar
      Add a ComputeNumSignBits function for use by instcombine, based on the · 123438cc
      Dan Gohman authored
      code in SelectionDAG.
      
      llvm-svn: 51279
      123438cc
  2. May 19, 2008
  3. May 18, 2008
  4. May 17, 2008
  5. May 16, 2008
  6. May 15, 2008
  7. May 14, 2008
  8. May 13, 2008
  9. May 12, 2008
Loading