- Jul 29, 2008
-
-
Matthijs Kooijman authored
partially unroll a loop when fully unrolling would not fit under the threshold. Patch by Mikael Lepistö. llvm-svn: 54160
-
- Jul 28, 2008
-
-
Owen Anderson authored
llvm-svn: 54144
-
Owen Anderson authored
This fixes PR2599. llvm-svn: 54133
-
- Jul 27, 2008
-
-
Dan Gohman authored
llvm-svn: 54128
-
- Jul 25, 2008
-
-
Dan Gohman authored
command-line option, and disable it by default. It introduced performance regressions because CodeGen is currently not able to remat such loads. llvm-svn: 53997
-
- Jul 23, 2008
-
-
Chris Lattner authored
case for this. This allows instructions like loads from global variables declared to be constant to be moved out of loops." Patch by Stefanus Du Toit! llvm-svn: 53945
-
Dan Gohman authored
Remove the GetResultInst instruction. It is still accepted in LLVM assembly and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove support for return instructions with multiple values. These are auto-upgraded to use InsertValueInst instructions. The IRBuilder still accepts multiple-value returns, and auto-upgrades them to InsertValueInst instructions. llvm-svn: 53941
-
- Jul 21, 2008
-
-
Dan Gohman authored
leads into a cycle involving a different PHI, LSR got stuck running around that cycle looking for the original PHI. To avoid this, keep track of visited PHIs and stop searching if we see one more than once. This fixes PR2570. llvm-svn: 53879
-
- Jul 18, 2008
-
-
Duncan Sands authored
llvm-svn: 53771
-
Owen Anderson authored
Make PRE actually handle critical edges (by splitting them). Confirmed that bootstrap passes with this change. llvm-svn: 53762
-
- Jul 17, 2008
-
-
Owen Anderson authored
llvm-svn: 53730
-
Chris Lattner authored
llvm-svn: 53715
-
Owen Anderson authored
llvm-svn: 53705
-
- Jul 16, 2008
-
-
Owen Anderson authored
could cause problems for memdep when it breaks critical edges. llvm-svn: 53691
-
Matthijs Kooijman authored
FindInsertedValue, it now performs a number of simple transformations that should result in the same effect when applied iteratively. llvm-svn: 53673
-
Evan Cheng authored
llvm-svn: 53666
-
- Jul 15, 2008
-
-
Owen Anderson authored
llvm-svn: 53627
-
Owen Anderson authored
llvm-svn: 53616
-
Owen Anderson authored
Have GVN do a pre-pass over the CFG that folds away unconditional branches where possible. This allows local PRE to be more aggressive. llvm-svn: 53615
-
- Jul 14, 2008
-
-
Dan Gohman authored
llvm-svn: 53564
-
Chris Lattner authored
disproving a condition. This actually compiles the existing testcase (udiv_select_to_select_shift) to: define i64 @test(i64 %X, i1 %Cond) { entry: %divisor1.t = lshr i64 %X, 3 ; <i64> [#uses=1] %quotient2 = lshr i64 %X, 3 ; <i64> [#uses=1] %sum = add i64 %divisor1.t, %quotient2 ; <i64> [#uses=1] ret i64 %sum } instead of: define i64 @test(i64 %X, i1 %Cond) { entry: %quotient1.v = select i1 %Cond, i64 3, i64 4 ; <i64> [#uses=1] %quotient1 = lshr i64 %X, %quotient1.v ; <i64> [#uses=1] %quotient2 = lshr i64 %X, 3 ; <i64> [#uses=1] %sum = add i64 %quotient1, %quotient2 ; <i64> [#uses=1] ret i64 %sum } llvm-svn: 53534
-
- Jul 12, 2008
-
-
Nick Lewycky authored
Remove dead code analyzing urem. 'urem' of power-of-2 is canonicalized to an 'and' instruction. llvm-svn: 53506
-
- Jul 11, 2008
-
-
Owen Anderson authored
llvm-svn: 53470
-
Nick Lewycky authored
llvm-svn: 53454
-
Nick Lewycky authored
llvm-svn: 53452
-
Nick Lewycky authored
similar. llvm-svn: 53451
-
Chris Lattner authored
llvm-svn: 53449
-
Chris Lattner authored
llvm-svn: 53448
-
Chris Lattner authored
llvm-svn: 53447
-
Chris Lattner authored
the min/max values for an integer type, compare against the min/max values we can prove contain the input. This might be a tighter bound, so this is general goodness. llvm-svn: 53446
-
Chris Lattner authored
handle them in some code. llvm-svn: 53445
-
Chris Lattner authored
was using the algorithm for folding unsigned comparisons which is completely wrong. This has been broken since the signless types change. llvm-svn: 53444
-
Chris Lattner authored
This cause a regression in InstCombine/JavaCompare, which was doing the right thing on accident. To handle the missed case, generalize the comparisons based on masked bits a little bit to handle comparisons against the max value. For example, we can now xform (slt i32 (and X, 4), 4) -> (setne i32 (and X, 4), 4) llvm-svn: 53443
-
- Jul 10, 2008
-
-
Nick Lewycky authored
llvm-svn: 53393
-
- Jul 09, 2008
-
-
Nick Lewycky authored
llvm-svn: 53283
-
Nick Lewycky authored
llvm-svn: 53282
-
Nick Lewycky authored
llvm-svn: 53276
-
Nick Lewycky authored
llvm-svn: 53271
-
Devang Patel authored
llvm-svn: 53265
-
- Jul 08, 2008
-
-
Chris Lattner authored
into phis. This is actually the same bug as PR2262 / 2008-04-29-VolatileLoadDontMerge.ll, but I missed checking the first predecessor for multiple successors. Testcase here: InstCombine/2008-07-08-VolatileLoadMerge.ll llvm-svn: 53240
-