- fc6d3a4 Convert InsertValueInst and ExtractValueInst APIs to use ArrayRef. by Jay Foad · 13 years ago
- 5fdd6c8 Second attempt at de-constifying LLVM Types in FunctionType::get(), by Jay Foad · 13 years ago
- 2280ebd Revert r134893 and r134888 (and related patches in other trees). It was causing by Bill Wendling · 13 years ago
- f362aff De-constify Types in FunctionType::get(). by Jay Foad · 13 years ago
- b5a12dd Don't duplicate the work done by a gep into a "bitcast" if the gep has by Rafael Espindola · 13 years ago
- e2e86f6 Reapply a fixed version of r133285. by Bob Wilson · 13 years ago
- fc87cdc PR10267: Don't combine an equality compare with an AND into an inequality compare when the AND has more than one use. by Benjamin Kramer · 13 years ago
- f1ac465 Generalize @llvm.ctlz, @llvm.cttz, and @llvm.ctpop to work on vectors of integers, and fix the one optimization pass that I'm aware of that needs updating for this. At least one current target, ARM NEON, can implement these operations on vectors directly. by Owen Anderson · 13 years ago
- 00805fa PR10180: Fix a instcombine crash with FP vectors. by Eli Friedman · 13 years ago
- b065b06 Revamp the "ConstantStruct::get" methods. Previously, these were scattered by Chris Lattner · 13 years ago
- 66638b2 Revert r133285. Causing odd failures on Dragonegg. by Chad Rosier · 13 years ago
- 3761c34 Relocate NUW test to cover all binary ops in a dynamic alloca expr. by Stuart Hastings · 13 years ago
- 7ac8f8f Avoid fusing bitcasts with dynamic allocas if the amount-to-allocate by Stuart Hastings · 13 years ago
- e7fdcad InstCombine: Fold A-b == C --> b == A-C if A and C are constants. by Benjamin Kramer · 13 years ago
- ffd0ae6 InstCombine: Shrink ((zext X) & C1) == C2 to fold away the cast if the "zext" and the "and" have one use. by Benjamin Kramer · 13 years ago
- 7e7c9cc Simplify code. No functionality changes, name changes aside. by Benjamin Kramer · 13 years ago
- f100282 Reapply 132348 with fixes. rdar://problem/6501862 by Stuart Hastings · 13 years ago
- 3200c4b Revert to pacify a buildbot. rdar://problem/6501862 by Stuart Hastings · 13 years ago
- df48e84 Followup to 132316; accept arbitrary constants, add with a constant, by Stuart Hastings · 13 years ago
- acbf107 (1 - X) * (-2) -> (x - 1) * 2, for all positive nonzero powers of 2 by Stuart Hastings · 13 years ago
- 2c5cc68 ConstantFoldInstOperands doesn't like compares, hand it off to instsimplify instead. by Benjamin Kramer · 13 years ago
- 17c1bb5 InstCombine: Make switch folding with equality compares more aggressive by trying instsimplify on the arm where we know the compared value. by Benjamin Kramer · 13 years ago
- a311c34 Final step of instcombine debuginfo; switch a couple more places over to InsertNewInstWith, and use setDebugLoc for the cases which can't be easily handled by the automated mechanisms. by Eli Friedman · 13 years ago
- 6266031 Renamed llvm.x86.sse42.crc32 intrinsics; crc64 doesn't exist. by Chad Rosier · 13 years ago
- a831a9b PR9998: ashr exact %x, 31 is not equivalent to sdiv exact %x, -2147483648. by Eli Friedman · 13 years ago
- a4d4aeb Make instcombine O(N) instead of O(N^2) in code where the same simplifiable constant is used many times. by Eli Friedman · 13 years ago
- 613f1a3 rearrange two transforms, since one subsumes the other. Make the shift-exactness by Chris Lattner · 13 years ago
- 05cd886 Transform any logical shift of a power of two into an exact/NUW shift when by Chris Lattner · 13 years ago
- 6083bb9 use the valuetracking isPowerOfTwo function, which is more powerful than checking by Chris Lattner · 13 years ago
- 6c9b8d3 add some random notes. by Chris Lattner · 13 years ago
- 1add46d Carve out a place in instcombine to put transformations which work knowing that their by Chris Lattner · 13 years ago
- cd89d4d Revert "InstCombine: Turn mul.with.overflow(X, 2) into the cheaper add.with.overflow(X, X)" by Benjamin Kramer · 13 years ago
- c21b205 InstCombine: Turn mul.with.overflow(X, 2) into the cheaper add.with.overflow(X, X) by Benjamin Kramer · 13 years ago
- 2e64960 Revert r131664 and fix it in instcombine instead. rdar://9467055 by Evan Cheng · 13 years ago
- aaa7f49 Add comment. by Evan Cheng · 13 years ago
- 6fd5a60 Make the demanded bits/elements optimizations preserve debug line information. by Eli Friedman · 13 years ago
- e6f364b More instcombine cleanup, towards improving debug line info. by Eli Friedman · 13 years ago
- 107ffd5 More instcombine simplifications towards better debug locations. by Eli Friedman · 13 years ago
- 59f1591 More instcombine cleanup aimed towards improving debug line info. by Eli Friedman · 13 years ago
- 976e7e1 Switch more inst insertion in instcombine to IRBuilder. by Eli Friedman · 13 years ago
- 1eca76a Switch more inst insertion in instcombine to IRBuilder. by Eli Friedman · 13 years ago
- e87ca45 Switch inst insertion in instcombine transform to IRBuilder. by Eli Friedman · 13 years ago
- d116611 Fix inelegant initialization. by Stuart Hastings · 13 years ago
- ef819d0 Start trying to make InstCombine preserve more debug info. The idea here is to set the debug location on the IRBuilder, which will be then right location in most cases. This should magically give many transformations debug locations, and fixing places which are missing a debug location will usually just means changing the code creating it to use the IRBuilder. by Eli Friedman · 13 years ago
- 3e22cb9 Use ReplaceInstUsesWith instead of replaceAllUsesWith where appropriate in instcombine. by Eli Friedman · 13 years ago
- ca1ef48 X86 pmovsx/pmovzx ignore the upper half of their inputs. rdar://problem/6945110 by Stuart Hastings · 13 years ago
- 67f071e Avoid combining GEPs that might overflow at runtime. rdar://problem/9267970 by Stuart Hastings · 13 years ago
- b6e7cd6 PR9838: Fix transform introduced in r127064 to not trigger when only one side of the icmp is an exact shift. by Eli Friedman · 13 years ago
- 00676a6 Remove unused variable. by Duncan Sands · 13 years ago
- f24ed77 Move some rem transforms out of instcombine and into instsimplify. by Duncan Sands · 13 years ago
- 7d6eb5a InstCombine: Turn (zext A) udiv (zext B) into (zext (A udiv B)). Same for urem or constant B. by Benjamin Kramer · 13 years ago
- 23b02cd Use SimplifyDemandedBits on div instructions. by Benjamin Kramer · 13 years ago
- 3224806 Balance parentheses. by Benjamin Kramer · 13 years ago
- c2e31c1 InstCombine: turn (C1 << A) << C2) into (C1 << C2) << A) by Benjamin Kramer · 13 years ago
- b0884f3 We require threse bits to be zero, too. by Benjamin Kramer · 13 years ago
- e12d583 Fix a comment. by Benjamin Kramer · 13 years ago
- 264ac87 InstCombine: Merge "(trunc x) == C1 & (and x, CA) == C2" into a single and+icmp. by Benjamin Kramer · 13 years ago
- 089a246 Stop trying to have instcombine preserve LCSSA form: this was not by Duncan Sands · 13 years ago
- 325eeb1 Transform: "icmp eq (trunc (lshr(X, cst1)), cst" to "icmp (and X, mask), cst" by Chris Lattner · 13 years ago
- 5036ce4 some random cleanups, no functionality change. by Chris Lattner · 13 years ago
- 86f72a8 Rename a misleadingly-named variable. by Frits van Bommel · 13 years ago
- 4130278 Fix bug when checking phi operands in InstCombiner::visitPHINode(), by Jay Foad · 13 years ago
- 7a2bdde Fix a ton of comment typos found by codespell. Patch by by Chris Lattner · 13 years ago
- 3ec01b7 Add an instcombine for constructs like a | -(b != c); a select is more by Eli Friedman · 13 years ago
- f93f7b2 Reapply r129401 with patch for clang. by Bill Wendling · 13 years ago
- f9b2dc6 Revert r129401 for now. Clang is using the old way of doing things. by Bill Wendling · 13 years ago
- d5f323d Remove the unaligned load intrinsics in favor of using native unaligned loads. by Bill Wendling · 13 years ago
- 562b84b Don't include Operator.h from InstrTypes.h. by Jay Foad · 13 years ago
- 0286ca8 InstCombine optimizes gep(bitcast(x)) even when the bitcasts casts away address by Nadav Rotem · 13 years ago
- f5b7593 While SimplifyDemandedBits constant folds this, we can't rely on it here. by Benjamin Kramer · 13 years ago
- 406a650 Fix comment. by Benjamin Kramer · 13 years ago
- 5337fab Tweaks to the icmp+sext-to-shifts optimization to address Frits' comments: by Benjamin Kramer · 13 years ago
- ce1498b Fix build. by Benjamin Kramer · 13 years ago
- 0baa94a InstCombine: Turn icmp + sext into bitwise/integer ops when the input has only one unknown bit. by Benjamin Kramer · 13 years ago
- 0a30c42 InstCombine: Move (sext icmp) transforms into their own method. No intended functionality change. by Benjamin Kramer · 13 years ago
- 0ff8a4f Instcombile optimization: extractelement(cast) -> cast(extractelement) by Nadav Rotem · 13 years ago
- 7ebdc37 InstCombine: APFloat can't perform arithmetic on PPC double doubles, don't even try. by Benjamin Kramer · 13 years ago
- 00e00d6 InstCombine: Fix transform to use the swapped predicate. by Benjamin Kramer · 13 years ago
- 68b4bd0 InstCombine: fold fcmp (fneg x), (fneg y) -> fcmp x, y by Benjamin Kramer · 13 years ago
- 0db5018 InstCombine: fold fcmp pred (fneg x), C -> fcmp swap(pred) x, -C by Benjamin Kramer · 13 years ago
- b194bdc InstCombine: Shrink "fcmp (fpext x), C" to "fcmp x, C" if C can be losslessly converted to the type of x. by Benjamin Kramer · 13 years ago
- cd0274c InstCombine: fold fcmp (fpext x), (fpext y) -> fcmp x, y. by Benjamin Kramer · 13 years ago
- 5467396 InstCombine: If the divisor of an fdiv has an exact inverse, turn it into an fmul. by Benjamin Kramer · 13 years ago
- 3ecfc86 Remove PHINode::reserveOperandSpace(). Instead, add a parameter to by Jay Foad · 13 years ago
- d8b4fb4 (Almost) always call reserveOperandSpace() on newly created PHINodes. by Jay Foad · 13 years ago
- 9822b86 InstCombine: Add a few missing combines for ANDs and ORs of sign bit tests. by Benjamin Kramer · 13 years ago
- 2bf026e Remove tabs I accidentally added. by Nick Lewycky · 13 years ago
- fd4a5497 Make more use of PHINode::getNumIncomingValues(). by Jay Foad · 13 years ago
- f56762a Add some debug output when -instcombine uses RAUW. This can make debug output for those cases much clearer since without this it only showed that the original instruction was removed, not what it was replaced with. by Frits van Bommel · 13 years ago
- 675619c Teach the transformation that moves binary operators around selects to preserve by Nick Lewycky · 13 years ago
- d655e6e Use APInt's umul_ov instead of rolling our own overflow detection. by Benjamin Kramer · 13 years ago
- 98cd750 Add a small missed optimization: turn X == C ? X : Y into X == C ? C : Y. This by Nick Lewycky · 13 years ago
- 813c9a0 Try to not lose variable's debug info during instcombine. by Devang Patel · 14 years ago
- b9b80c3 If we don't know how long a string is we can't fold an _chk version to the by Eric Christopher · 14 years ago
- 948d9e7 This case is solved by Scalar Replacement of Aggregates (DT) and by Jin-Gu Kang · 14 years ago
- 198e97c Add comment as following: by Jin-Gu Kang · 14 years ago
- c5c03f9 This patch removes some of useless instructions generated by bitfield access. by Jin-Gu Kang · 14 years ago
- 6b49725 InstCombine: Fix a thinko where transform an icmp under the assumption that it's a zero comparison when it's not. by Benjamin Kramer · 14 years ago
- 6b96fe7 InstCombine: Turn umul_with_overflow into mul nuw if we can prove that it cannot overflow. by Benjamin Kramer · 14 years ago
- c6b018b PR9346: Prevent SimplifyDemandedBits from incorrectly introducing INT_MIN % -1. by Eli Friedman · 14 years ago