- Jun 18, 2008
-
-
Chris Lattner authored
llvm-svn: 52466
-
Owen Anderson authored
Revert r52459, which was causing an infinite loop or massive slowdown on MultiSource/Applications/SPASS, and possibly others as well. Please reapply once this is fixed. llvm-svn: 52465
-
Dan Gohman authored
function, and make use of it in several places. llvm-svn: 52463
-
Matthijs Kooijman authored
dependencies between return values and/or arguments. Also make the handling of arguments and return values the same. The pass now looks properly inside returned structs, but only at the first level (ie, not inside nested structs). Also add a testcase for testing various variations of (multiple) dead rerturn values. llvm-svn: 52459
-
Matthijs Kooijman authored
time. Sorry for the trouble! This time, also add a testcase, which I should have done in the first place... llvm-svn: 52455
-
Matthijs Kooijman authored
commit after this). llvm-svn: 52453
-
-
Chris Lattner authored
implements rdar://6013816 and the testcase in Transforms/InstCombine/sext-misc.ll. llvm-svn: 52440
-
Devang Patel authored
llvm-svn: 52438
-
Owen Anderson authored
We don't want to find dependencies within the same block in this case. It leads to incorrect results because we're detecting something at or after the call we're querying on. llvm-svn: 52433
-
- Jun 17, 2008
-
-
Chris Lattner authored
llvm-svn: 52415
-
Duncan Sands authored
Spotted by Nick Lewycky. llvm-svn: 52411
-
Matthijs Kooijman authored
speaking these are not constant values. However, when a function always returns one of its arguments, then from the point of view of each caller the return value is constant (or at least a known value) and can be replaced. llvm-svn: 52397
-
Matthijs Kooijman authored
individually. Also learn IPConstProp how returning first class aggregates work, in addition to old style multiple return instructions. Modify the return-constants testscase to confirm this behaviour. llvm-svn: 52396
-
Dan Gohman authored
when changing the stride of a comparison so that it's slightly more precise, by having it scan the instruction list to determine if there is a use of the condition after the point where the condition will be inserted. llvm-svn: 52371
-
- Jun 16, 2008
-
-
Evan Cheng authored
llvm-svn: 52361
-
Evan Cheng authored
llvm-svn: 52339
-
Matthijs Kooijman authored
llvm-svn: 52318
-
Matthijs Kooijman authored
llvm-svn: 52316
-
Matthijs Kooijman authored
I'm at it, rename it to FindInsertedValue. The only functional change is that newly created instructions are no longer added to instcombine's worklist, but that is not really necessary anyway (and I'll commit some improvements next that will completely remove the need). llvm-svn: 52315
-
Chris Lattner authored
llvm-svn: 52295
-
- Jun 14, 2008
-
-
Chris Lattner authored
llvm-svn: 52267
-
Eli Friedman authored
when trying to sink stores. llvm-svn: 52259
-
- Jun 13, 2008
-
-
Dan Gohman authored
for it to generate use-before-def IR, such as in this testcase. llvm-svn: 52258
-
Eli Friedman authored
structure checks are incorrect if the blocks aren't distinct. Fixes PR2435. llvm-svn: 52257
-
Wojciech Matyjewicz authored
llvm-svn: 52251
-
- Jun 12, 2008
-
-
Gabor Greif authored
llvm-svn: 52247
-
Gabor Greif authored
llvm-svn: 52246
-
Evan Cheng authored
Do not speculatively execute an instruction by hoisting it to its predecessor BB if any of its operands are defined but not used in BB. The transformation will prevent the operand from being sunk into the use block. llvm-svn: 52244
-
Evan Cheng authored
llvm-svn: 52243
-
Owen Anderson authored
llvm-svn: 52242
-
- Jun 11, 2008
-
-
Gabor Greif authored
llvm-svn: 52226
-
Evan Cheng authored
For now, avoid generating FP select instructions in order to speculatively execute integer arithmetic instructions. FP selects are more likely to be expensive (even compared to branch on fcmp). This is not a wonderful solution but I rather err on the side of conservative. This fixes the heapsort performance regressions. llvm-svn: 52224
-
Evan Cheng authored
Avoid duplicating loop header which leads to unnatural loops (and just seem like general badness to me, likely to cause code explosion). Patch by Florian Brandner. llvm-svn: 52223
-
Matthijs Kooijman authored
useless insert-extract chains, similar to how it folds them for vectors. Add a testcase for this. llvm-svn: 52217
-
Matthijs Kooijman authored
llvm-svn: 52212
-
Gabor Greif authored
llvm-svn: 52191
-
- Jun 09, 2008
-
-
Chris Lattner authored
llvm-svn: 52138
-
Chris Lattner authored
result of a weak function. llvm-svn: 52137
-
- Jun 08, 2008
-
-
Duncan Sands authored
of apint codegen failure is the DAG combiner doing the wrong thing because it was comparing MVT's using < rather than comparing the number of bits. Removing the < method makes this mistake impossible to commit. Instead, add helper methods for comparing bits and use them. llvm-svn: 52098
-