- May 20, 2008
-
-
Evan Cheng authored
If local spiller optimization turns some instruction into an identity copy, it will be removed. If the output register happens to be dead (and source is obviously killed), transfer the kill / dead information to last use / def in the same MBB. llvm-svn: 51306
-
Evan Cheng authored
llvm-svn: 51305
-
Matthijs Kooijman authored
llvm-svn: 51303
-
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
-
Chris Lattner authored
llvm-svn: 51296
-
Chris Lattner authored
value as undef or untracked. llvm-svn: 51295
-
Dan Gohman authored
will become first-class types. llvm-svn: 51293
-
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
-
Evan Cheng authored
llvm-svn: 51291
-
Dan Gohman authored
llvm-svn: 51290
-
Dan Gohman authored
llvm-svn: 51289
-
Steve Naroff authored
llvm-svn: 51287
-
Devang Patel authored
llvm-svn: 51280
-
Dan Gohman authored
code in SelectionDAG. llvm-svn: 51279
-
- May 19, 2008
-
-
Dale Johannesen authored
$non_lazy_ptr's and $lazy_ptr's. llvm-svn: 51277
-
Chris Lattner authored
llvm-svn: 51275
-
Chris Lattner authored
llvm-svn: 51274
-
Chris Lattner authored
produce a negative zero. llvm-svn: 51272
-
Chris Lattner authored
to accurately represent the integer. This triggers 9 times in 471.omnetpp, though 8 of those seem to be inlined from the same place. llvm-svn: 51271
-
Chris Lattner authored
type and the other operand is a constant into integer comparisons. This happens surprisingly frequently (e.g. 10 times in 471.omnetpp), which are things like this: %tmp8283 = sitofp i32 %tmp82 to double %tmp1013 = fcmp ult double %tmp8283, 0.0 Clearly comparing tmp82 against i32 0 is cheaper here. this also triggers 8 times in gobmk, including this one: %tmp375376 = sitofp i32 %tmp375 to double %tmp377 = fcmp ogt double %tmp375376, 8.150000e+01 which is comparing an integer against 81.5 :). llvm-svn: 51268
-
Bill Wendling authored
llvm-svn: 51266
-
Chris Lattner authored
llvm-svn: 51264
-
Chris Lattner authored
intersecting bits. This triggers all over the place, for example in lencode, with adds of stuff like: %tmp580 = mul i32 %tmp579, 2 %tmp582 = and i32 %b8, 1 and %tmp28 = shl i32 %abs.i, 1 %sign.0 = select i1 %tmp23, i32 1, i32 0 and %tmp344 = shl i32 %tmp343, 2 %tmp346 = and i32 %tmp96, 3 etc. llvm-svn: 51263
-
Duncan Sands authored
whether or not -funit-at-a-time is used (C++ uses it, C doesn't) - it was working before only when not doing unit-at-a-time. llvm-svn: 51258
-
Duncan Sands authored
an i16! Cleaned up trailing whitespace while there. llvm-svn: 51240
-
Gordon Henriksen authored
llvm-svn: 51239
-
Gordon Henriksen authored
llvm-svn: 51238
-
Ted Kremenek authored
Patch by Dmitri Makarov! llvm-svn: 51237
-
Bill Wendling authored
llvm-svn: 51236
-
Bill Wendling authored
llvm-svn: 51235
-
Bill Wendling authored
llvm-svn: 51234
-
Bill Wendling authored
llvm-svn: 51233
-
Bill Wendling authored
llvm-svn: 51232
-
- May 18, 2008
-
-
Nate Begeman authored
llvm-svn: 51230
-
Nate Begeman authored
llvm-svn: 51229
-
Chris Lattner authored
llvm-svn: 51227
-
Chris Lattner authored
llvm-svn: 51226
-
Chris Lattner authored
llvm-svn: 51225
-
- May 17, 2008
-
-
Nick Lewycky authored
llvm-svn: 51223
-
Chris Lattner authored
llvm-svn: 51222
-