Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | For PR1248: | Reid Spencer | 2007-03-21 | 1 | -18/+26 |
| | | | | | | | | | | | | * Fix some indentation and comments in InsertRangeTest * Add an "IsSigned" parameter to AddWithOverflow and make it handle signed additions. Also, APIntify this function so it works with any bitwidth. * For the icmp pred ([us]div %X, C1), C2 transforms, exit early if the div instruction's RHS is zero. * Finally, for icmp pred (sdiv %X, C1), -C2, fix an off-by-one error. The HiBound needs to be incremented in order to get the range test correct. llvm-svn: 35247 | ||||
* | do not share old induction variables when this would result in invalid | Dale Johannesen | 2007-03-20 | 1 | -18/+26 |
| | | | | | | instructions (that would have to be split later) llvm-svn: 35227 | ||||
* | Fix some VC++ warnings. | Jeff Cohen | 2007-03-20 | 1 | -1/+1 |
| | | | | llvm-svn: 35224 | ||||
* | LoopSimplify::FindPHIToPartitionLoops() | Devang Patel | 2007-03-20 | 1 | -4/+6 |
| | | | | | | Use ETForest instead of DominatorSet. llvm-svn: 35221 | ||||
* | Simplify isHighOnes(). | Zhou Sheng | 2007-03-20 | 1 | -9/+1 |
| | | | | llvm-svn: 35211 | ||||
* | use types of loads and stores, not address, in CheckForIVReuse | Dale Johannesen | 2007-03-20 | 1 | -7/+28 |
| | | | | llvm-svn: 35197 | ||||
* | Make isOneBitSet faster by using APInt::isPowerOf2. Thanks Chris. | Reid Spencer | 2007-03-20 | 1 | -1/+1 |
| | | | | llvm-svn: 35194 | ||||
* | APIntify the isHighOnes utility function. | Reid Spencer | 2007-03-19 | 1 | -5/+6 |
| | | | | llvm-svn: 35190 | ||||
* | Implement isMaxValueMinusOne in terms of APInt instead of uint64_t. | Reid Spencer | 2007-03-19 | 1 | -5/+4 |
| | | | | | | Patch by Sheng Zhou. llvm-svn: 35188 | ||||
* | Implement isMinValuePlusOne using facilities of APInt instead of uint64_t | Reid Spencer | 2007-03-19 | 1 | -5/+4 |
| | | | | | | Patch by Zhou Sheng. llvm-svn: 35187 | ||||
* | Implement isOneBitSet in terms of APInt::countPopulation. | Reid Spencer | 2007-03-19 | 1 | -2/+1 |
| | | | | llvm-svn: 35186 | ||||
* | 1. Use APInt::getSignBit to reduce clutter (patch by Sheng Zhou) | Reid Spencer | 2007-03-19 | 1 | -8/+4 |
| | | | | | | 2. Replace uses of the "isPositive" utility function with APInt::isPositive llvm-svn: 35185 | ||||
* | Remove a redundant clause in an if statement. | Reid Spencer | 2007-03-19 | 1 | -1/+0 |
| | | | | | | Patch by Sheng Zhou. llvm-svn: 35184 | ||||
* | fix ScalarRepl/2007-03-19-CanonicalizeMemcpy.ll | Chris Lattner | 2007-03-19 | 1 | -1/+2 |
| | | | | llvm-svn: 35169 | ||||
* | implement the next chunk of SROA with memset/memcpy's of aggregates. This | Chris Lattner | 2007-03-19 | 1 | -36/+107 |
| | | | | | | implements Transforms/ScalarRepl/memset-aggregate-byte-leader.ll llvm-svn: 35150 | ||||
* | Clean up this code and fix subtract miscompile. | Nick Lewycky | 2007-03-18 | 1 | -18/+22 |
| | | | | llvm-svn: 35146 | ||||
* | Implement InstCombine/and-xor-merge.ll:test[12]. | Chris Lattner | 2007-03-18 | 1 | -54/+96 |
| | | | | | | Rearrange some code to simplify it now that shifts are binops llvm-svn: 35145 | ||||
* | Propagate ValueRanges across equality. | Nick Lewycky | 2007-03-18 | 1 | -67/+159 |
| | | | | | | Add some more micro-optimizations: x * 0 = 0, a - x = a --> x = 0. llvm-svn: 35138 | ||||
* | Silence warning | Anton Korobeynikov | 2007-03-17 | 1 | -2/+2 |
| | | | | llvm-svn: 35137 | ||||
* | Add more comments and update to new asm syntax. | Nick Lewycky | 2007-03-16 | 1 | -28/+130 |
| | | | | | | | | | | Add new micro-optimizations. Add icmp predicate snuggling. Given %x ULT 4, "icmp ugt %x, 2" becomes "icmp eq %x, 3". This doesn't apply in any non-trivial cases yet due to missing support for NE values in ValueRanges. llvm-svn: 35119 | ||||
* | ShiftAmt might equal to zero. Handle this situation. | Zhou Sheng | 2007-03-14 | 1 | -7/+9 |
| | | | | llvm-svn: 35094 | ||||
* | Enable KnownZero/One.clear(). | Zhou Sheng | 2007-03-14 | 1 | -2/+2 |
| | | | | llvm-svn: 35093 | ||||
* | Correct type info for isLegalAddressImmediate() check. | Evan Cheng | 2007-03-13 | 1 | -12/+18 |
| | | | | llvm-svn: 35086 | ||||
* | ifdef out some dead code. | Chris Lattner | 2007-03-13 | 1 | -2/+8 |
| | | | | | | Fix PR1244 and Transforms/InstCombine/2007-03-13-CompareMerge.ll llvm-svn: 35082 | ||||
* | For expression like | Zhou Sheng | 2007-03-13 | 1 | -3/+3 |
| | | | | | | | | "APInt::getAllOnesValue(ShiftAmt).zextOrCopy(BitWidth)", to handle ShiftAmt == BitWidth situation, use zextOrCopy() instead of zext(). llvm-svn: 35080 | ||||
* | In APInt version ComputeMaskedBits(): | Zhou Sheng | 2007-03-13 | 1 | -15/+28 |
| | | | | | | | 1. Ensure VTy, KnownOne and KnownZero have same bitwidth. 2. Make code more efficient. llvm-svn: 35078 | ||||
* | Use new TargetLowering addressing modes hooks. | Evan Cheng | 2007-03-12 | 1 | -20/+18 |
| | | | | llvm-svn: 35072 | ||||
* | Unbreak VC++ build. Do not use identifiers starting with _ as they are ↵ | Jeff Cohen | 2007-03-12 | 1 | -3/+3 |
| | | | | | | | | reserved and can collide with system defined names. Windows defines _BB, for example. llvm-svn: 35066 | ||||
* | Add an APInt version of SimplifyDemandedBits. | Reid Spencer | 2007-03-12 | 1 | -1/+524 |
| | | | | | | Patch by Zhou Sheng. llvm-svn: 35064 | ||||
* | Add an APInt version of ShrinkDemandedConstant. | Reid Spencer | 2007-03-12 | 1 | -0/+24 |
| | | | | | | Patch by Zhou Sheng. llvm-svn: 35063 | ||||
* | Avoid to assert on "(KnownZero & KnownOne) == 0". | Zhou Sheng | 2007-03-12 | 1 | -1/+1 |
| | | | | llvm-svn: 35062 | ||||
* | In function ComputeMaskedBits(): | Zhou Sheng | 2007-03-12 | 1 | -6/+6 |
| | | | | | | | | 1. Replace getSignedMinValue() with getSignBit() for better code readability. 2. Replace APIntOps::shl() with operator<<= for convenience. 3. Make APInt construction more effective. llvm-svn: 35060 | ||||
* | Add value ranges. Currently inefficient in both execution time and | Nick Lewycky | 2007-03-10 | 1 | -219/+397 |
| | | | | | | optimization power. llvm-svn: 35058 | ||||
* | Use range tests in LowerSwitch, where possible | Anton Korobeynikov | 2007-03-10 | 1 | -31/+114 |
| | | | | llvm-svn: 35057 | ||||
* | Remove dead comments. | Devang Patel | 2007-03-09 | 1 | -3/+0 |
| | | | | llvm-svn: 35053 | ||||
* | Avoid recursion. Use iterative algorithm for RenamePass(). | Devang Patel | 2007-03-09 | 1 | -4/+31 |
| | | | | llvm-svn: 35052 | ||||
* | Increment iterator now because IVUseShouldUsePostIncValue may remove | Devang Patel | 2007-03-09 | 1 | -2/+6 |
| | | | | | | User from the list of I users. llvm-svn: 35051 | ||||
* | Fix a bug in function ComputeMaskedBits(). | Zhou Sheng | 2007-03-08 | 1 | -2/+2 |
| | | | | llvm-svn: 35027 | ||||
* | This appears correct, enable it so we can see perf changes on testers | Chris Lattner | 2007-03-08 | 1 | -1/+1 |
| | | | | llvm-svn: 35024 | ||||
* | Second half of PR1226. This is currently still disabled, until I have a ↵ | Chris Lattner | 2007-03-08 | 1 | -9/+67 |
| | | | | | | | | chance to do the correctness/performance analysis testing. llvm-svn: 35023 | ||||
* | Fix a bug in APIntified ComputeMaskedBits(). | Zhou Sheng | 2007-03-08 | 1 | -8/+4 |
| | | | | llvm-svn: 35022 | ||||
* | For PR1205: | Reid Spencer | 2007-03-08 | 1 | -0/+10 |
| | | | | | | | | | | Provide an APIntified version of MaskedValueIsZero. This will (temporarily) cause a "defined but not used" message from the compiler. It will be used in the next patch in this series. Patch by Sheng Zhou. llvm-svn: 35019 | ||||
* | For PR1205: | Reid Spencer | 2007-03-08 | 1 | -1/+206 |
| | | | | | | | | Add a new ComputeMaskedBits function that is APIntified. We'll slowly convert things over to use this version. When its all done, we'll remove the existing version. llvm-svn: 35018 | ||||
* | Now IndVarSimplify is a LoopPass. | Devang Patel | 2007-03-07 | 1 | -27/+32 |
| | | | | llvm-svn: 35003 | ||||
* | Now LICM is a LoopPass. | Devang Patel | 2007-03-07 | 1 | -30/+26 |
| | | | | llvm-svn: 35001 | ||||
* | Now LoopUnroll is a LoopPass. | Devang Patel | 2007-03-07 | 1 | -36/+7 |
| | | | | llvm-svn: 34996 | ||||
* | Now LoopUnswitch is a LoopPass. | Devang Patel | 2007-03-07 | 1 | -86/+17 |
| | | | | llvm-svn: 34992 | ||||
* | Now LoopStrengthReduce is a LoopPass. | Devang Patel | 2007-03-06 | 1 | -23/+14 |
| | | | | llvm-svn: 34984 | ||||
* | Remove an unnecessary if statement and adjust indentation. | Reid Spencer | 2007-03-05 | 1 | -23/+21 |
| | | | | llvm-svn: 34939 | ||||
* | This is the first major step of implementing PR1226. We now successfully | Chris Lattner | 2007-03-05 | 1 | -5/+156 |
| | | | | | | | scalarrepl things down to elements, but mem2reg can't promote elements that are memset/memcpy'd. Until then, the code is disabled "0 &&". llvm-svn: 34924 |