Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | the GEP faq says that only inbounds geps are guaranteed to not overflow. | Chris Lattner | 2011-01-11 | 1 | -2/+3 |
| | | | | llvm-svn: 123218 | ||||
* | Revert r123207: "Turn on memdep's verifyRemoved() in an attempt to smoke out ↵ | Jakob Stoklund Olesen | 2011-01-11 | 1 | -3/+1 |
| | | | | | | | | the cause of our gcc bootstrap miscompare." It didn't. llvm-svn: 123215 | ||||
* | Support/Path: Deprecate PathV1::isDirectory and replace all uses with ↵ | Michael J. Spencer | 2011-01-11 | 3 | -3/+21 |
| | | | | | | PathV2::is_directory. llvm-svn: 123209 | ||||
* | Turn on memdep's verifyRemoved() in an attempt to smoke out the cause of our ↵ | Jakob Stoklund Olesen | 2011-01-11 | 1 | -1/+3 |
| | | | | | | gcc bootstrap miscompare. llvm-svn: 123207 | ||||
* | Teach constant folding to perform conversions from constant floating | Chandler Carruth | 2011-01-11 | 2 | -55/+56 |
| | | | | | | | | point values to their integer representation through the SSE intrinsic calls. This is the last part of a README.txt entry for which I have real world examples. llvm-svn: 123206 | ||||
* | Fix a random missed optimization by making InstCombine more aggressive when ↵ | Owen Anderson | 2011-01-11 | 2 | -17/+40 |
| | | | | | | | | determining which bits are demanded by a comparison against a constant. llvm-svn: 123203 | ||||
* | Move ExpandAtomic into the integer expansion routines - it's only used there. | Eric Christopher | 2011-01-11 | 2 | -86/+87 |
| | | | | llvm-svn: 123202 | ||||
* | Even if we don't have 7 bytes of stack space we may need to save and | Eric Christopher | 2011-01-11 | 1 | -1/+8 |
| | | | | | | | | restore the stack pointer from the frame pointer on thumbv6. Fixes rdar://8819685 llvm-svn: 123196 | ||||
* | Expand on the safeness of restoring the sp from the fp a bit more. | Eric Christopher | 2011-01-10 | 1 | -1/+2 |
| | | | | llvm-svn: 123193 | ||||
* | Fix PR 8916 (qv for analysis), at least the immediate problem. | Dale Johannesen | 2011-01-10 | 1 | -1/+2 |
| | | | | | | | | | | | There's an inherent tension in DAGCombine between assuming that things will be put in canonical form, and the Depth mechanism that disables transformations when recursion gets too deep. It would not surprise me if there's a lot of little bugs like this one waiting to be discovered. The mechanism seems fragile and I'd suggest looking at it from a design viewpoint. llvm-svn: 123191 | ||||
* | +0.0 vs -0.0 differences can be handled by looking at the user of the | Chris Lattner | 2011-01-10 | 1 | -3/+19 |
| | | | | | | operation in some cases. llvm-svn: 123190 | ||||
* | McARM: Flush out hard coded known non-predicated mnemonic list. | Daniel Dunbar | 2011-01-10 | 1 | -3/+12 |
| | | | | llvm-svn: 123189 | ||||
* | McARM: Mark some T2 ...s instructions as codegen only, they aren't real | Daniel Dunbar | 2011-01-10 | 1 | -4/+4 |
| | | | | | | instructions but are restricted pseudo forms. llvm-svn: 123177 | ||||
* | ARM/MC: Mark several '...S' instructions as codegen only, they aren't real | Daniel Dunbar | 2011-01-10 | 1 | -4/+6 |
| | | | | | | instructions but are restricted pseudo forms. llvm-svn: 123176 | ||||
* | MC/ARM/AsmParser: Minor nitty fixes. | Daniel Dunbar | 2011-01-10 | 1 | -3/+3 |
| | | | | llvm-svn: 123175 | ||||
* | Fix merge fallout | Anton Korobeynikov | 2011-01-10 | 1 | -2/+2 |
| | | | | llvm-svn: 123172 | ||||
* | Update CMake stuff | Anton Korobeynikov | 2011-01-10 | 14 | -16/+15 |
| | | | | llvm-svn: 123171 | ||||
* | Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs ↵ | Anton Korobeynikov | 2011-01-10 | 104 | -525/+546 |
| | | | | | | and fixes here and there. llvm-svn: 123170 | ||||
* | MC/ARM/AsmParser: Split out SplitMnemonicAndCC(). | Daniel Dunbar | 2011-01-10 | 1 | -17/+29 |
| | | | | llvm-svn: 123169 | ||||
* | Cleanup some of the constant folding code to consistently test intrinsic | Chandler Carruth | 2011-01-10 | 1 | -16/+18 |
| | | | | | | | IDs when available rather than using a mixture of IDs and textual name comparisons. llvm-svn: 123165 | ||||
* | fit in 80 cols and use MBB::isSuccessor instead of a hand | Chris Lattner | 2011-01-10 | 1 | -5/+4 |
| | | | | | | rolled std::find. llvm-svn: 123164 | ||||
* | Teach instcombine about the rest of the SSE and SSE2 conversion | Chandler Carruth | 2011-01-10 | 1 | -4/+11 |
| | | | | | | intrinsics element dependencies. Reviewed by Nick. llvm-svn: 123161 | ||||
* | Simplify a bunch of isVirtualRegister() and isPhysicalRegister() logic. | Jakob Stoklund Olesen | 2011-01-10 | 19 | -37/+33 |
| | | | | | | | | These functions not longer assert when passed 0, but simply return false instead. No functional change intended. llvm-svn: 123155 | ||||
* | Fix Whitespace. | Michael J. Spencer | 2011-01-10 | 2 | -17/+17 |
| | | | | llvm-svn: 123152 | ||||
* | Support/Path: Deprecate PathV1::exists and replace all uses with ↵ | Michael J. Spencer | 2011-01-10 | 7 | -9/+21 |
| | | | | | | PathV2::fs::exists. llvm-svn: 123151 | ||||
* | another random stab in the dark trying to fix llvm-gcc-i386-linux-selfhost | Chris Lattner | 2011-01-10 | 1 | -2/+4 |
| | | | | llvm-svn: 123149 | ||||
* | another (more) aggressive attempt to bring llvm-gcc-i386-linux-selfhost | Chris Lattner | 2011-01-10 | 1 | -0/+2 |
| | | | | | | back to life. llvm-svn: 123146 | ||||
* | expand on a note | Chris Lattner | 2011-01-10 | 1 | -4/+9 |
| | | | | llvm-svn: 123145 | ||||
* | temporarily disable memset formation from memsets in an effort to restore ↵ | Chris Lattner | 2011-01-09 | 1 | -0/+3 |
| | | | | | | buildbot stability. llvm-svn: 123144 | ||||
* | typo | Chris Lattner | 2011-01-09 | 1 | -1/+1 |
| | | | | llvm-svn: 123142 | ||||
* | xref a PR # | Chris Lattner | 2011-01-09 | 1 | -22/+2 |
| | | | | llvm-svn: 123141 | ||||
* | add a fixme: ir isn't expressive enough. | Chris Lattner | 2011-01-09 | 1 | -0/+1 |
| | | | | llvm-svn: 123139 | ||||
* | Step #4 in improving trip count analysis: HowFarToZero can analyze | Chris Lattner | 2011-01-09 | 1 | -2/+11 |
| | | | | | | | NUW AddRec's much more aggressively. We now get a trip count for @test2 in nsw.ll llvm-svn: 123138 | ||||
* | rearrange some code, no functionality change. | Chris Lattner | 2011-01-09 | 1 | -41/+45 |
| | | | | llvm-svn: 123136 | ||||
* | Add a note about the inability to model FP -> int conversions which | Chandler Carruth | 2011-01-09 | 1 | -0/+55 |
| | | | | | | | | perform rounding other than truncation in the IR. Common C code for this turns into really an LLVM intrinsic call that blocks a lot of further optimizations. llvm-svn: 123135 | ||||
* | Step #3 to improving trip count analysis: If we fold | Chris Lattner | 2011-01-09 | 1 | -4/+8 |
| | | | | | | | | a + {b,+,stride} into {a+b,+,stride} (because a is LIV), then the resultant AddRec is NUW/NSW if the client says it is. llvm-svn: 123133 | ||||
* | Step #2 to improve trip count analysis for loops like this: | Chris Lattner | 2011-01-09 | 1 | -6/+105 |
| | | | | | | | | | | | | | | | | | | | void f(int* begin, int* end) { std::fill(begin, end, 0); } which turns into a != exit expression where one pointer is strided and (thanks to step #1) known to not overflow, and the other is loop invariant. The observation here is that, though the IV is strided by 4 in this case, that the IV *has* to become equal to the end value. It cannot "miss" the end value by stepping over it, because if it did, the strided IV expression would eventually wrap around. Handle this by turning A != B into "A-B != 0" where the A-B part is known to be NUW. llvm-svn: 123131 | ||||
* | Remove MachineRegisterInfo::getLastVirtReg(), it was giving wrong results | Jakob Stoklund Olesen | 2011-01-09 | 2 | -10/+9 |
| | | | | | | | | | | | | | | | | | | when no virtual registers have been allocated. It was only used to resize IndexedMaps, so provide an IndexedMap::resize() method such that Map.grow(MRI.getLastVirtReg()); can be replaced with the simpler Map.resize(MRI.getNumVirtRegs()); This works correctly when no virtuals are allocated, and it bypasses the to/from index conversions. llvm-svn: 123130 | ||||
* | sort this. | Chris Lattner | 2011-01-09 | 1 | -1/+1 |
| | | | | llvm-svn: 123129 | ||||
* | Teach TargetRegisterInfo how to cram stack slot indexes in with the virtual and | Jakob Stoklund Olesen | 2011-01-09 | 6 | -14/+28 |
| | | | | | | | | | | | | | physical register numbers. This makes the hack used in LiveInterval official, and lets LiveInterval be oblivious of stack slots. The isPhysicalRegister() and isVirtualRegister() predicates don't know about this, so when a variable may contain a stack slot, isStackSlot() should always be tested first. llvm-svn: 123128 | ||||
* | Add a note about a missed FP optimization. | Chandler Carruth | 2011-01-09 | 1 | -0/+24 |
| | | | | llvm-svn: 123126 | ||||
* | fix a few old bugs (found by inspection) where we would zap instructions | Chris Lattner | 2011-01-09 | 1 | -1/+4 |
| | | | | | | | | without informing memdep. This could cause nondeterminstic weirdness based on where instructions happen to get allocated, and will hopefully breath some life into some broken testers. llvm-svn: 123124 | ||||
* | Add a forgotten VireReg2IndexFunctor. | Jakob Stoklund Olesen | 2011-01-09 | 1 | -1/+1 |
| | | | | llvm-svn: 123123 | ||||
* | Instcombine: Fix pattern where the sext did not dominate the icmp using it | Tobias Grosser | 2011-01-09 | 1 | -2/+7 |
| | | | | llvm-svn: 123121 | ||||
* | LoopInstSimplify preserves LoopSimplify. | Cameron Zwarich | 2011-01-09 | 1 | -0/+1 |
| | | | | llvm-svn: 123117 | ||||
* | Another missed memset in std::vector initialization. | Chandler Carruth | 2011-01-09 | 1 | -0/+19 |
| | | | | llvm-svn: 123116 | ||||
* | Eliminate some extra hash table lookups. | Cameron Zwarich | 2011-01-09 | 1 | -7/+10 |
| | | | | llvm-svn: 123115 | ||||
* | Add an informative comment. | Cameron Zwarich | 2011-01-09 | 1 | -1/+9 |
| | | | | llvm-svn: 123114 | ||||
* | Fix a cut-paste-o so that the sample code is correct for my last note. | Chandler Carruth | 2011-01-09 | 1 | -2/+6 |
| | | | | | | | Also, switch to a more clear 'sink' function with its declaration to avoid any confusion about 'g'. Thanks for the suggestion Frits. llvm-svn: 123113 | ||||
* | Another missed optimization of trivial vector code. | Chandler Carruth | 2011-01-09 | 1 | -0/+33 |
| | | | | llvm-svn: 123112 |