| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 2011-07-18 | Migrate LLVM and Clang to use the new makeArrayRef(...) functions where ↵ | Frits van Bommel | 1 | -6/+3 | |
| previously explicit non-default constructors were used. Mostly mechanical with some manual reformatting. llvm-svn: 135390 | |||||
| 2011-07-18 | land David Blaikie's patch to de-constify Type, with a few tweaks. | Chris Lattner | 1 | -15/+15 | |
| llvm-svn: 135375 | |||||
| 2011-07-13 | Convert InsertValueInst and ExtractValueInst APIs to use ArrayRef. | Jay Foad | 1 | -31/+28 | |
| llvm-svn: 135040 | |||||
| 2011-06-27 | Move onlyUsedByLifetimeMarkers to ValueTracking so that it can be used by other | Nick Lewycky | 1 | -0/+16 | |
| passes as well. llvm-svn: 133904 | |||||
| 2011-05-26 | Renamed llvm.x86.sse42.crc32 intrinsics; crc64 doesn't exist. | Chad Rosier | 1 | -2/+2 | |
| crc32.[8|16|32] have been renamed to .crc32.32.[8|16|32] and crc64.[8|16|32] have been renamed to .crc32.64.[8|64]. llvm-svn: 132163 | |||||
| 2011-05-23 | Teach valuetracking that byval arguments with a specified alignment are | Chris Lattner | 1 | -1/+11 | |
| aligned. Teach memcpyopt to not give up all hope when confonted with an underaligned memcpy feeding an overaligned byval. If the *source* of the memcpy can be determined to be adequeately aligned, or if it can be forced to be, we can eliminate the memcpy. This addresses PR9794. We now compile the example into: define i32 @f(%struct.p* nocapture byval align 8 %q) nounwind ssp { entry: %call = call i32 @g(%struct.p* byval align 8 %q) nounwind ret i32 %call } in both x86-64 and x86-32 mode. We still don't get a tailcall though, because tailcalls apparently can't handle byval. llvm-svn: 131884 | |||||
| 2011-05-22 | Teach ValueTracking about x86 crc32 intrinsics. | Evan Cheng | 1 | -0/+4 | |
| llvm-svn: 131861 | |||||
| 2011-04-15 | Fix a ton of comment typos found by codespell. Patch by | Chris Lattner | 1 | -2/+2 | |
| Luis Felipe Strano Moraes! llvm-svn: 129558 | |||||
| 2011-04-02 | Don't assume something which might be a constant expression is an instruction. | Eli Friedman | 1 | -3/+3 | |
| Based on PR9429, but no testcase because I can't figure out how to trigger it anymore given other changes to the relevant code. llvm-svn: 128781 | |||||
| 2011-03-21 | Fix INT_MIN gotcha pointed out by Eli Friedman. | Nick Lewycky | 1 | -3/+4 | |
| llvm-svn: 128028 | |||||
| 2011-03-12 | Teach ComputeMaskedBits about sub nsw. | Benjamin Kramer | 1 | -8/+16 | |
| llvm-svn: 127548 | |||||
| 2011-03-11 | ComputeMaskedBits: sub falls through to add, and sub doesn't have the same ↵ | Benjamin Kramer | 1 | -1/+2 | |
| overflow semantics as add. Should fix the selfhost failures that started with r127463. llvm-svn: 127465 | |||||
| 2011-03-11 | Teach ComputeMaskedBits about nsw on add. I don't think there's anything we can | Nick Lewycky | 1 | -0/+14 | |
| do with nuw here, but sub and mul should be given similar treatment. Fixes PR9343 #15! llvm-svn: 127463 | |||||
| 2011-03-08 | Fix PR9331. Simplified version of a patch by Jakub Staszak. | Duncan Sands | 1 | -0/+4 | |
| llvm-svn: 127243 | |||||
| 2011-03-07 | Add more analysis of the sign bit of an srem instruction. If the LHS is negative | Nick Lewycky | 1 | -0/+13 | |
| then the result could go either way. If it's provably positive then so is the srem. Fixes PR9343 #7! llvm-svn: 127146 | |||||
| 2011-02-28 | Fix comment. | Nick Lewycky | 1 | -1/+1 | |
| llvm-svn: 126645 | |||||
| 2011-02-28 | srem doesn't actually have the same resulting sign as its numerator, you could | Nick Lewycky | 1 | -12/+0 | |
| also have a zero when numerator = denominator. Reverts parts of r126635 and r126637. llvm-svn: 126644 | |||||
| 2011-02-28 | Teach value tracking to make use of flags in more situations. | Nick Lewycky | 1 | -0/+25 | |
| llvm-svn: 126642 | |||||
| 2011-02-28 | Teach ValueTracking to look at the dividend when determining the sign bit of an | Nick Lewycky | 1 | -0/+12 | |
| srem instruction. llvm-svn: 126637 | |||||
| 2011-02-19 | Stores of null pointers should turn into memset, we weren't recognizing | Chris Lattner | 1 | -0/+5 | |
| them as splat values. llvm-svn: 126041 | |||||
| 2011-02-10 | Tolerate degenerate phi nodes that can occur in the middle of optimization | Nick Lewycky | 1 | -0/+4 | |
| passes. Fixes PR9112. Patch by Jakub Staszak! llvm-svn: 125319 | |||||
| 2011-02-01 | Add a m_SignBit pattern for convenience. | Duncan Sands | 1 | -3/+1 | |
| llvm-svn: 124656 | |||||
| 2011-01-29 | Fix typo: should have been testing that X was odd, not V. | Duncan Sands | 1 | -3/+3 | |
| llvm-svn: 124533 | |||||
| 2011-01-26 | APInt has a method for determining whether a number is a power of 2 | Duncan Sands | 1 | -1/+1 | |
| which is more efficient than countPopulation - use it. llvm-svn: 124283 | |||||
| 2011-01-25 | In which I discover that zero+zero is zero, d'oh! | Duncan Sands | 1 | -3/+3 | |
| llvm-svn: 124188 | |||||
| 2011-01-25 | See if this fixes llvm-gcc bootstrap. | Duncan Sands | 1 | -1/+2 | |
| llvm-svn: 124184 | |||||
| 2011-01-25 | According to my auto-simplifier the most common missed simplifications in | Duncan Sands | 1 | -1/+164 | |
| optimized code are: (non-negative number)+(power-of-two) != 0 -> true and (x | 1) != 0 -> true Instcombine knows about the second one of course, but only does it if X|1 has only one use. These fire thousands of times in the testsuite. llvm-svn: 124183 | |||||
| 2011-01-24 | Give GetUnderlyingObject a TargetData, to keep it in sync | Dan Gohman | 1 | -3/+4 | |
| with BasicAA's DecomposeGEPExpression, which recently began using a TargetData. This fixes PR8968, though the testcase is awkward to reduce. Also, update several off GetUnderlyingObject's users which happen to have a TargetData handy to pass it in. llvm-svn: 124134 | |||||
| 2011-01-04 | fix an off-by-one bug that caused a crash analyzing | Chris Lattner | 1 | -1/+1 | |
| ashr's with huge shift amounts, PR8896 llvm-svn: 122814 | |||||
| 2010-12-26 | move isBytewiseValue out to ValueTracking.h/cpp | Chris Lattner | 1 | -0/+69 | |
| llvm-svn: 122565 | |||||
| 2010-12-17 | Add vector versions of some existing scalar transforms to aid codegen in ↵ | Nate Begeman | 1 | -0/+7 | |
| matching psign & pblend operations to the IR produced by clang/gcc for their C idioms. llvm-svn: 122105 | |||||
| 2010-12-15 | Reapply r121886, and also update DecomposeGEPExpression to keep | Dan Gohman | 1 | -0/+8 | |
| it in sync. llvm-svn: 121895 | |||||
| 2010-12-15 | Revert r121886. DecomposeGEPExpression needs to be kept | Dan Gohman | 1 | -8/+0 | |
| in sync. llvm-svn: 121892 | |||||
| 2010-12-15 | Strengthen GetUnderlyingObject using InstructionSimplify. | Dan Gohman | 1 | -0/+9 | |
| While LLVM's main design is that analysis code shouldn't go out of its way to understand code which hasn't been InstCombined, analysis utility routines like this can find themselves being called in the middle of transform passes when instcombine hasn't had a chance to run. llvm-svn: 121886 | |||||
| 2010-12-15 | Move Value::getUnderlyingObject to be a standalone | Dan Gohman | 1 | -0/+20 | |
| function so that it can live in Analysis instead of VMCore. llvm-svn: 121885 | |||||
| 2010-12-07 | PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and | Jay Foad | 1 | -12/+10 | |
| zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method trunc(), to be const and to return a new value instead of modifying the object in place. llvm-svn: 121120 | |||||
| 2010-12-01 | PR5207: Rename overloaded APInt methods set(), clear(), flip() to | Jay Foad | 1 | -11/+11 | |
| setAllBits(), setBit(unsigned), etc. llvm-svn: 120564 | |||||
| 2010-11-30 | move GetPointerBaseWithConstantOffset out of GVN into ValueTracking.h | Chris Lattner | 1 | -0/+41 | |
| llvm-svn: 120476 | |||||
| 2010-11-30 | PR5207: Make APInt::set(), APInt::clear() and APInt::flip() return void. | Jay Foad | 1 | -2/+3 | |
| llvm-svn: 120413 | |||||
| 2010-09-05 | fix PR8063, a crash in globalopt in the malloc analysis code. | Chris Lattner | 1 | -20/+29 | |
| llvm-svn: 113109 | |||||
| 2010-08-18 | move gep decomposition out of ValueTracking into BasicAA. The form of | Chris Lattner | 1 | -189/+0 | |
| decomposition that it is doing is very basicaa specific and is only used by basicaa. Now with less tree breakingness. llvm-svn: 111433 | |||||
| 2010-08-18 | Revert r111375, "move gep decomposition out of ValueTracking into BasicAA. The | Daniel Dunbar | 1 | -0/+188 | |
| form of", it doesn't pass tests. llvm-svn: 111385 | |||||
| 2010-08-18 | move gep decomposition out of ValueTracking into BasicAA. The form of | Chris Lattner | 1 | -188/+0 | |
| decomposition that it is doing is very basicaa specific and is only used by basicaa. llvm-svn: 111375 | |||||
| 2010-08-18 | fix PR7589: In brief: | Chris Lattner | 1 | -3/+3 | |
| gep P, (zext x) != gep P, (sext x) DecomposeGEPExpression was getting this wrong, confusing basicaa. llvm-svn: 111352 | |||||
| 2010-06-23 | use ArgOperand accessors | Gabor Greif | 1 | -2/+2 | |
| llvm-svn: 106697 | |||||
| 2010-04-16 | Revert 101465, it broke internal OpenGL testing. | Eric Christopher | 1 | -2/+2 | |
| Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. llvm-svn: 101579 | |||||
| 2010-04-16 | reapply r101434 | Gabor Greif | 1 | -2/+2 | |
| 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 | |||||
| 2010-04-16 | back out r101423 and r101397, they break llvm-gcc self-host on darwin10 | Gabor Greif | 1 | -2/+2 | |
| llvm-svn: 101434 | |||||
| 2010-04-15 | reapply r101364, which has been backed out in r101368 | Gabor Greif | 1 | -2/+2 | |
| 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 | |||||
| 2010-04-15 | back out r101364, as it trips the linux nightlybot on some clang C++ tests | Gabor Greif | 1 | -2/+2 | |
| llvm-svn: 101368 | |||||
