- May 29, 2008
-
-
Owen Anderson authored
the one case that ADCE catches that normal DCE doesn't: non-induction variable loop computations. This implementation handles this problem without using postdominators. llvm-svn: 51668
-
Owen Anderson authored
llvm-svn: 51666
-
- May 28, 2008
-
-
Chris Lattner authored
llvm-svn: 51636
-
- May 27, 2008
-
-
Duncan Sands authored
llvm-svn: 51591
-
Nick Lewycky authored
the set of nodes. Fix makeEqual to handle this by creating the new node first then iterating across them second. llvm-svn: 51573
-
Nick Lewycky authored
llvm-svn: 51572
-
- May 25, 2008
-
-
Nick Lewycky authored
Analysis/ConstantFolding to fold ConstantExpr's, then make instcombine use it to try to use targetdata to fold constant expressions on void instructions. Also extend the icmp(inttoptr, inttoptr) folding to handle the case where int size != ptr size. llvm-svn: 51559
-
- May 24, 2008
-
-
Chris Lattner authored
This fixes PR2359 llvm-svn: 51536
-
Chris Lattner authored
llvm-svn: 51535
-
Evan Cheng authored
Remove x86.sse2.loadh.pd and x86.sse2.loadl.pd. These will be lowered into load and shuffle instructions. llvm-svn: 51521
-
- May 23, 2008
-
-
Dan Gohman authored
use it instead of duplicating its functionality. llvm-svn: 51499
-
Matthijs Kooijman authored
llvm-svn: 51482
-
Nick Lewycky authored
llvm-svn: 51476
-
Nick Lewycky authored
llvm-svn: 51475
-
Nick Lewycky authored
llvm-svn: 51474
-
Nick Lewycky authored
llvm-svn: 51472
-
Nick Lewycky authored
llvm-svn: 51471
-
Dan Gohman authored
and/or to handle more cases (such as this add-sitofp.ll testcase), and port it to selectiondag's ComputeNumSignBits. llvm-svn: 51469
-
Dan Gohman authored
exclude struct and array types. llvm-svn: 51467
-
Dale Johannesen authored
in gcc.dg/pr27531-1.c. llvm-svn: 51464
-
Dan Gohman authored
exclude struct and array types. llvm-svn: 51456
-
- May 22, 2008
-
-
Chris Lattner authored
more aggressive, and more correct. Verify that we only attempt to promote loads and stores. llvm-svn: 51406
-
Chris Lattner authored
llvm-svn: 51399
-
- May 21, 2008
-
-
Dan Gohman authored
ScalarEvolution::deleteValueFromRecords on it before doing the replaceAllUsesWith, because ScalarEvolution looks at the instruction's users to find SCEV references to the instruction's SCEV object in its internal maps. Move all of LSR's loop-related state clearing after processing the loop and before cleaning up dead PHI nodes. This eliminates all of LSR's SCEV references just before the calls to ScalarEvolution::deleteValueFromRecords so that when ScalarEvolution drops its own SCEV references, the reference counts will reach zero and the SCEVs will be deleted immediately. These changes fix some compiler aborts involving ScalarEvolution holding onto and reusing SCEV objects for instructions that have been deleted. No regression test unfortunately; because the symptoms were due to dangling pointers, reduced testcases ended up being fairly arbitrary. llvm-svn: 51359
-
- May 20, 2008
-
-
Dan Gohman authored
now that instcombine also has ComputeNumSignBits. llvm-svn: 51350
-
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
-
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
-
Dan Gohman authored
llvm-svn: 51290
-
Devang Patel authored
llvm-svn: 51280
-
Dan Gohman authored
code in SelectionDAG. llvm-svn: 51279
-
- May 19, 2008
-
-
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
-
- May 18, 2008
-
-
Nate Begeman authored
llvm-svn: 51230
-