- Jan 21, 2011
-
-
Chris Lattner authored
llvm-svn: 123968
-
Chris Lattner authored
llvm-svn: 123965
-
Nick Lewycky authored
a select. A vector select is pairwise on each element so we'd need a new condition with the right number of elements to select on. Fixes PR8994. llvm-svn: 123963
-
- Jan 16, 2011
-
-
Chris Lattner authored
llvm-svn: 123569
-
Chris Lattner authored
multiple uses. In some cases, all the uses are the same operation, so instcombine can go ahead and promote the phi. In the testcase this pushes an add out of the loop. llvm-svn: 123568
-
Chris Lattner authored
first line of the function because it isn't a good idea, even for compares. llvm-svn: 123566
-
Chris Lattner authored
llvm-svn: 123565
-
Chris Lattner authored
llvm-svn: 123564
-
- Dec 22, 2010
-
-
Duncan Sands authored
if both A op B and A op C simplify. This fires fairly often but doesn't make that much difference. On gcc-as-one-file it removes two "and"s and turns one branch into a select. llvm-svn: 122399
-
Duncan Sands authored
instcombine is compared to instsimplify. llvm-svn: 122397
-
- Dec 20, 2010
-
-
Chris Lattner authored
llvm-svn: 122204
-
- Dec 19, 2010
-
-
Chris Lattner authored
llvm-svn: 122183
-
- Nov 29, 2010
-
-
Frits van Bommel authored
Transform (extractvalue (load P), ...) to (load (gep P, 0, ...)) if the load has no other uses, shrinking the load. llvm-svn: 120323
-
- Nov 23, 2010
-
-
Duncan Sands authored
llvm-svn: 120051
-
Duncan Sands authored
Stylistic improvement suggested by Frits van Bommel. llvm-svn: 120026
-
Duncan Sands authored
llvm-svn: 120025
-
Duncan Sands authored
fairly systematic way in instcombine. Some of these cases were already dealt with, in which case I removed the existing code. The case of Add has a bunch of funky logic which covers some of this plus a few variants (considers shifts to be a form of multiplication), which I didn't touch. The simplification performed is: A*B+A*C -> A*(B+C). The improvement is to do this in cases that were not already handled [such as A*B-A*C -> A*(B-C), which was reported on the mailing list], and also to do it more often by not checking for "only one use" if "B+C" simplifies. llvm-svn: 120024
-
- Nov 22, 2010
-
-
Duncan Sands authored
then replace the index with zero. llvm-svn: 119974
-
Duncan Sands authored
InstructionSimplify. llvm-svn: 119970
-
- Nov 13, 2010
-
-
Duncan Sands authored
SimplifyAssociativeOrCommutative) "(A op C1) op C2" -> "A op (C1 op C2)", which previously was only done if C1 and C2 were constants, to occur whenever "C1 op C2" simplifies (a la InstructionSimplify). Since the simplifying operand combination can no longer be assumed to be the right-hand terms, consider all of the possible permutations. When compiling "gcc as one big file", transform 2 (i.e. using right-hand operands) fires about 4000 times but it has to be said that most of the time the simplifying operands are both constants. Transforms 3, 4 and 5 each fired once. Transform 6, which is an existing transform that I didn't change, never fired. With this change, the testcase is now optimized perfectly with one run of instcombine (previously it required instcombine + reassociate + instcombine, and it may just have been luck that this worked). llvm-svn: 119002
-
- Oct 23, 2010
-
-
Benjamin Kramer authored
llvm-svn: 117213
-
- Oct 08, 2010
-
-
Owen Anderson authored
llvm-svn: 115996
-
- Oct 07, 2010
-
-
Owen Anderson authored
llvm-svn: 115965
-
- Jul 22, 2010
-
-
Owen Anderson authored
llvm-svn: 109045
-
- Jul 09, 2010
-
-
Gabor Greif authored
llvm-svn: 107972
-
- Jun 24, 2010
-
-
Gabor Greif authored
llvm-svn: 106736
-
- May 27, 2010
-
-
Duncan Sands authored
to null. Patch by Matti Niemenmaa. llvm-svn: 104871
-
- Apr 17, 2010
-
-
Eric Christopher authored
Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. llvm-svn: 101579
-
- Apr 16, 2010
-
-
Gabor Greif authored
with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101465
-
Gabor Greif authored
llvm-svn: 101434
-
- Apr 15, 2010
-
-
Gabor Greif authored
with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101397
-
Gabor Greif authored
llvm-svn: 101368
-
Gabor Greif authored
of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101364
-
- Feb 16, 2010
-
-
Duncan Sands authored
and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. llvm-svn: 96344
-
- Feb 15, 2010
-
-
Duncan Sands authored
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris! llvm-svn: 96223
-
- Jan 08, 2010
-
-
Chris Lattner authored
llvm-svn: 92964
-
- Jan 05, 2010
-
-
Benjamin Kramer authored
llvm-svn: 92771
-
Benjamin Kramer authored
llvm-svn: 92760
-
Dan Gohman authored
non-zero trip count. Use SmallVector's pop_back_val(). llvm-svn: 92734
-
Chris Lattner authored
llvm-svn: 92712
-