- 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
-
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
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
-
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
an i16! Cleaned up trailing whitespace while there. llvm-svn: 51240
-
Gordon Henriksen authored
llvm-svn: 51239
-
Gordon Henriksen authored
llvm-svn: 51238
-
- May 18, 2008
-
-
Nate Begeman authored
llvm-svn: 51230
-
Nate Begeman authored
llvm-svn: 51229
-
Chris Lattner authored
llvm-svn: 51226
-
- May 17, 2008
-
-
Nick Lewycky authored
llvm-svn: 51223
-
Chris Lattner authored
llvm-svn: 51222
-
Nick Lewycky authored
llvm-svn: 51217
-
Nick Lewycky authored
llvm-svn: 51216
-
Nick Lewycky authored
llvm-svn: 51215
-
Dale Johannesen authored
suggested by Duncan. llvm-svn: 51211
-
- May 16, 2008
-
-
Dale Johannesen authored
replaced at linktime with a body that throws, even if the body in this file does not. Make PruneEH be more conservative in this case. g++.dg/eh/weak1.C llvm-svn: 51207
-
Eric Christopher authored
its associated call site. llvm-svn: 51204
-
Dale Johannesen authored
missing it. gcc.dg/darwin-weakimport-2.c. Handle common and weak differently for darwin ppc32. llvm-svn: 51201
-
Gabor Greif authored
API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.) llvm-svn: 51200
-
Evan Cheng authored
llvm-svn: 51192
-
Duncan Sands authored
included after local headers. llvm-svn: 51187
-
Duncan Sands authored
original method caused gcc-4.2 to complain. llvm-svn: 51186
-
Evan Cheng authored
llvm-svn: 51183
-
Owen Anderson authored
safer manner by loop deletion. llvm-svn: 51182
-