- 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
-
- Jul 07, 2008
-
-
Evan Cheng authored
1. LSR runOnLoop is always returning false regardless if any transformation is made. 2. AddUsersIfInteresting can create new instructions that are added to DeadInsts. But there is a later early exit which prevents them from being freed. llvm-svn: 53193
-
Dan Gohman authored
llvm-svn: 53177
-
- Jul 05, 2008
-
-
Nick Lewycky authored
llvm-svn: 53151
-
- Jul 03, 2008
-
-
Owen Anderson authored
Use information already present in the ValueTable to fast-fail when we know there won't be a value number match. This speeds up GVN on a case where there are very few redundancies by ~25%. llvm-svn: 53108
-
Devang Patel authored
Do not try to update dominator info while manipulating CFG. This code does not handle all cases and keeps invalid dom info around some cases, which misleads other passes down stream. Right now, dom info is recaluclated in the end if the loop is switched. llvm-svn: 53106
-
Owen Anderson authored
Remove the ability for ADCE to remove unreachable blocks in loop nests, because, as Eli pointed out, SimplifyCFG already does this. llvm-svn: 53104
-
Bill Wendling authored
llvm-svn: 53090
-
Devang Patel authored
llvm-svn: 53089
-
Devang Patel authored
llvm-svn: 53087
-
Devang Patel authored
llvm-svn: 53086
-