summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix a problem Nate and Duraid reported where simplifying nodes can causeChris Lattner2006-02-201-4/+8
| | | | | | | them to get ressurected, in which case, deleting the undead nodes is unfriendly. llvm-svn: 26291
* Fix a problem on itanium with memset. The value to set has been promoted toChris Lattner2006-02-201-2/+6
| | | | | | i64 before this code, so zero_ext doesn't work. llvm-svn: 26290
* Add checks to make sure we don't create bogus extend nodes, and fix a bugNate Begeman2006-02-182-4/+14
| | | | | | | where we were doing exactly that which was causing failures on x86 and alpha. llvm-svn: 26284
* Fix a tricky issue in the SimplifyDemandedBits code where CombineTo wasn'tChris Lattner2006-02-172-9/+95
| | | | | | | exactly the API we wanted to call into. This fixes the crash on crafty last night. llvm-svn: 26269
* Clean up DemandedBitsAreZero interfaceNate Begeman2006-02-171-22/+26
| | | | | | | Make more use of the new mask helpers in valuetypes.h Combine (sra (srl x, c1), c1) -> sext_inreg if legal llvm-svn: 26263
* Don't expand sdiv by power of two before legalize, since it will likelyNate Begeman2006-02-171-2/+2
| | | | | | generate illegal nodes. llvm-svn: 26261
* kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBCNate Begeman2006-02-173-62/+47
| | | | | | | and SUBE nodes that actually expose what's going on and allow for significant simplifications in the targets. llvm-svn: 26255
* Fix another miscompilation exposed by lencode, where we lowered i64->f32Chris Lattner2006-02-171-1/+1
| | | | | | | conversions to __floatdidf instead of __floatdisf on targets that support f32 but not i64 (e.g. sparc). llvm-svn: 26254
* Dumb bug. Code sees a memcpy from X+c so it increments src offset. But itEvan Cheng2006-02-161-4/+10
| | | | | | | turns out not to point to a constant string but it forgot change the offset back. llvm-svn: 26242
* Rework the SelectionDAG-based implementations of SimplifyDemandedBitsNate Begeman2006-02-161-35/+17
| | | | | | | and ComputeMaskedBits to match the new improved versions in instcombine. Tested against all of multisource/benchmarks on ppc. llvm-svn: 26238
* If the false case is the current basic block, then this is a self loop.Evan Cheng2006-02-161-0/+9
| | | | | | | | | | We do not want to emit "Loop: ... brcond Out; br Loop", as it adds an extra instruction in the loop. Instead, invert the condition and emit "Loop: ... br!cond Loop; br Out. Generalize the fix by moving it from PPCDAGToDAGISel to SelectionDAGLowering. llvm-svn: 26231
* Lowering of sdiv X, pow2 was broken, this fixes it. This patch is writtenChris Lattner2006-02-161-6/+12
| | | | | | by Nate, I'm just committing it for him. llvm-svn: 26230
* Remove an unused function parameter.Evan Cheng2006-02-151-2/+2
| | | | llvm-svn: 26221
* Turn a memcpy from string constant into a series of stores of constant values.Evan Cheng2006-02-151-47/+69
| | | | llvm-svn: 26219
* Should not combine ISD::LOCATIONs until we have scheme to remove fromJim Laskey2006-02-152-36/+2
| | | | | | MachineDebugInfo tables. llvm-svn: 26216
* Lower memcpy with small constant size operand into a series of load / storeEvan Cheng2006-02-151-8/+34
| | | | | | ops. llvm-svn: 26195
* Doh again!Evan Cheng2006-02-141-1/+1
| | | | llvm-svn: 26188
* Using wrong DW_FORM.Jim Laskey2006-02-141-1/+1
| | | | llvm-svn: 26184
* Keep to < 80 colsEvan Cheng2006-02-141-6/+6
| | | | llvm-svn: 26177
* Missed a break so memcpy cases fell through to memset. Doh.Evan Cheng2006-02-141-1/+1
| | | | llvm-svn: 26176
* Fixed a build breakage.Evan Cheng2006-02-141-14/+23
| | | | llvm-svn: 26175
* Rename maxStoresPerMemSet to maxStoresPerMemset, etc.Evan Cheng2006-02-141-1/+1
| | | | llvm-svn: 26174
* Expand memset dst, c, size to a series of stores if size falls below theEvan Cheng2006-02-141-4/+127
| | | | | | target specific theshold, e.g. 16 for x86. llvm-svn: 26171
* now that libcalls don't suck, we can remove this hackChris Lattner2006-02-141-6/+2
| | | | llvm-svn: 26164
* Fix a latent bug in the call sequence handling stuff. Some targets (e.g. x86)Chris Lattner2006-02-141-4/+11
| | | | | | create these nodes with flag results. Remember that we legalized them. llvm-svn: 26156
* Rename to better reflect usage (current and planned.)Jim Laskey2006-02-132-3/+4
| | | | llvm-svn: 26145
* Completely rewrite libcall insertion by the legalizer, providing theChris Lattner2006-02-131-198/+217
| | | | | | | | | | | | | | | | following handy-dandy properties: 1. it is always correct now 2. it is much faster than before 3. it is easier to understand This implementation builds off of the recent simplifications of the legalizer that made it single-pass instead of iterative. This fixes JM/lencod, JM/ldecod, and CodeGen/Generic/2006-02-12-InsertLibcall.ll (at least on PPC). llvm-svn: 26144
* Reorg for integration with gcc4. Old style debug info will not be passed thoughJim Laskey2006-02-112-134/+267
| | | | | | to SelIDAG. llvm-svn: 26115
* Added SelectionDAG::InsertISelMapEntry(). This is used to workaround the gccEvan Cheng2006-02-091-0/+9
| | | | | | | | problem where it inline the map insertion call too aggressively. Before this change it was producing a frame size of 24k for Select_store(), now it's down to 10k (by calling this method rather than calling the map insertion operator). llvm-svn: 26094
* More changes to reduce frame size.Evan Cheng2006-02-091-0/+243
| | | | | | | | | Move all getTargetNode() out of SelectionDAG.h into SelectionDAG.cpp. This prevents them from being inlined. Change getTargetNode() so they return SDNode * instead of SDOperand to prevent copying. It should also help compilation speed. llvm-svn: 26083
* Adjust to MachineConstantPool interface change: instead of keeping aChris Lattner2006-02-092-3/+37
| | | | | | value/alignment pair for each constant, keep a value/offset pair. llvm-svn: 26078
* rename fields of constant pool entriesChris Lattner2006-02-092-6/+6
| | | | llvm-svn: 26076
* Simplify code, alignment must be specified now.Chris Lattner2006-02-091-10/+1
| | | | llvm-svn: 26074
* Make MachineConstantPool entries alignments explicitChris Lattner2006-02-091-2/+12
| | | | llvm-svn: 26071
* Add support for assembler directives that wrap inline asmChris Lattner2006-02-081-1/+4
| | | | llvm-svn: 26065
* Compile this:Chris Lattner2006-02-081-0/+26
| | | | | | | | | | | | | | | xori r6, r2, 1 rlwinm r6, r6, 0, 31, 31 cmpwi cr0, r6, 0 bne cr0, LBB1_3 ; endif to this: rlwinm r6, r2, 0, 31, 31 cmpwi cr0, r6, 0 beq cr0, LBB1_3 ; endif llvm-svn: 26047
* Add support for modifier characters to operand printersChris Lattner2006-02-061-2/+21
| | | | llvm-svn: 26021
* Goodbye nasty macro.Jim Laskey2006-02-061-4/+4
| | | | llvm-svn: 26019
* Edit requests from Sabre.Jim Laskey2006-02-061-85/+80
| | | | llvm-svn: 26018
* Changing model for the construction of debug information.Jim Laskey2006-02-062-102/+622
| | | | llvm-svn: 26016
* Back out previous commit, it isn't safe.Nate Begeman2006-02-051-6/+0
| | | | llvm-svn: 26006
* fold c1 << (x + c2) into (c1 << c2) << x. fix a warning.Nate Begeman2006-02-051-1/+7
| | | | llvm-svn: 26005
* Handle urem by shifted powers of 2.Nate Begeman2006-02-051-4/+15
| | | | llvm-svn: 26001
* handle combining A / (B << N) into A >>u (log2(B)+N) when B is a power of 2Nate Begeman2006-02-051-2/+13
| | | | llvm-svn: 26000
* * Added SDNode::isOnlyUse().Evan Cheng2006-02-051-3/+18
| | | | | | * Fix hasNUsesOfValue(), it should be const. llvm-svn: 25990
* make sure that global doubles are aligned to 8 bytesChris Lattner2006-02-051-5/+10
| | | | llvm-svn: 25981
* Implement the AsmPrinter::getPreferredAlignmentLog method.Chris Lattner2006-02-051-0/+16
| | | | llvm-svn: 25978
* Fix VC++ warning.Jeff Cohen2006-02-041-1/+0
| | | | llvm-svn: 25975
* Get rid of some memory leaks identified by ValgrindEvan Cheng2006-02-042-2/+9
| | | | llvm-svn: 25960
* Fix VC++ warning.Jeff Cohen2006-02-041-1/+1
| | | | llvm-svn: 25957
OpenPOWER on IntegriCloud