summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* remove "Slot", it is deadChris Lattner2006-03-081-2/+25
| | | | llvm-svn: 26609
* Codegen copysign[f] into a FCOPYSIGN nodeChris Lattner2006-03-051-2/+44
| | | | llvm-svn: 26542
* Add more vector NodeTypes: VSDIV, VUDIV, VAND, VOR, and VXOR.Evan Cheng2006-03-031-4/+14
| | | | llvm-svn: 26504
* remove the read/write port/io intrinsics.Chris Lattner2006-03-031-62/+0
| | | | llvm-svn: 26479
* Vector ops lowering.Evan Cheng2006-03-011-45/+65
| | | | llvm-svn: 26436
* 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
* kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBCNate Begeman2006-02-171-14/+43
| | | | | | | 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
* Should not combine ISD::LOCATIONs until we have scheme to remove fromJim Laskey2006-02-151-2/+2
| | | | | | MachineDebugInfo tables. llvm-svn: 26216
* 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
* 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
* *** empty log message ***Nate Begeman2006-02-011-0/+1
| | | | llvm-svn: 25879
* Fix some of the stuff in the PPC README file, and clean up legalizationNate Begeman2006-02-011-219/+205
| | | | | | of the SELECT_CC, BR_CC, and BRTWOWAY_CC nodes. llvm-svn: 25875
* Allow custom lowering of fabs. I forgot to check in this change whichEvan Cheng2006-01-311-1/+6
| | | | | | caused several test failures. llvm-svn: 25852
* Only insert an AND when converting from BR_COND to BRCC if needed.Chris Lattner2006-01-311-1/+3
| | | | llvm-svn: 25832
* Fix a bug in my legalizer reworking that caused the X86 backend to not getChris Lattner2006-01-301-2/+1
| | | | | | | a chance to custom legalize setcc, which broke a bunch of C++ Codes. Testcase here: CodeGen/X86/2006-01-30-LongSetcc.ll llvm-svn: 25821
* don't insert an and node if it isn't needed here, this can prevent foldingChris Lattner2006-01-301-1/+3
| | | | | | of lowered target nodes. llvm-svn: 25804
* Fix RET of promoted values on targets that custom expand RET to a target node.Chris Lattner2006-01-291-8/+9
| | | | llvm-svn: 25794
* cleanups to the ValueTypeActions interfaceChris Lattner2006-01-291-7/+5
| | | | llvm-svn: 25785
* Remove some special case hacks for CALLSEQ_*, using UpdateNodeOperandsChris Lattner2006-01-291-16/+21
| | | | | | instead. llvm-svn: 25780
* Allow custom expansion of ConstantVec nodes. PPC will use this in the future.Chris Lattner2006-01-291-22/+35
| | | | llvm-svn: 25774
* Legalize ConstantFP into TargetConstantFP when the target allows. ImplementChris Lattner2006-01-291-1/+18
| | | | | | custom expansion of ConstantFP nodes. llvm-svn: 25772
* eliminate uses of SelectionDAG::getBR2Way_CCChris Lattner2006-01-291-6/+14
| | | | llvm-svn: 25767
* Use the new "UpdateNodeOperands" method to simplify LegalizeDAG and make itChris Lattner2006-01-281-317/+194
| | | | | | | | | | | | | | faster. This cuts about 120 lines of code out of the legalizer (mostly code checking to see if operands have changed). It also fixes an ugly performance issue, where the legalizer cloned the entire graph after any change. Now the "UpdateNodeOperands" method gives it a chance to reuse nodes if the operands of a node change but not its opcode or valuetypes. This speeds up instruction selection time on kimwitu++ by about 8.2% with a release build. llvm-svn: 25746
* minor tweaksChris Lattner2006-01-281-21/+21
| | | | llvm-svn: 25740
* move a bunch of code, no other change.Chris Lattner2006-01-281-326/+324
| | | | llvm-svn: 25739
* remove a couple more now-extraneous legalizeop'sChris Lattner2006-01-281-9/+5
| | | | llvm-svn: 25738
* fix a bugChris Lattner2006-01-281-2/+1
| | | | llvm-svn: 25737
* Several major changes:Chris Lattner2006-01-281-764/+488
| | | | | | | | | | | 1. Pull out the expand cases for BSWAP and CT* into a separate function, reducing the size of LegalizeOp. 2. Fix a bug where expand(bswap i64) was wrong when i64 is legal. 3. Changed LegalizeOp/PromoteOp so that the legalizer never needs to be iterative. It now operates in a single pass over the nodes. 4. Simplify a LOT of code, with a net reduction of ~280 lines. llvm-svn: 25736
* Eliminate the need for ExpandOp to set 'needsanotheriteration', as it alreadyChris Lattner2006-01-281-131/+80
| | | | | | | | | | | relegalizes the stuff it returns. Add the ability to custom expand ADD/SUB, so that targets don't need to deal with ADD_PARTS/SUB_PARTS if they don't want. Fix some obscure potential bugs and simplify code. llvm-svn: 25732
* Instead of making callers of ExpandLibCall legalize the result, makeChris Lattner2006-01-281-6/+7
| | | | | | ExpandLibCall do it itself. llvm-svn: 25731
* Eliminate the need to do another iteration of the legalizer after insertingChris Lattner2006-01-281-3/+2
| | | | | | a libcall. llvm-svn: 25730
* Implement Promote for VAARG, and allow it to be custom promoted for peopleNate Begeman2006-01-281-1/+25
| | | | | | who don't want the default behavior (Alpha). llvm-svn: 25726
* Remove the ISD::CALL and ISD::TAILCALL nodesChris Lattner2006-01-281-80/+0
| | | | llvm-svn: 25721
* initial selectiondag support for new INLINEASM node. Note that inline asmsChris Lattner2006-01-261-0/+22
| | | | | | with outputs or inputs are not supported yet. :) llvm-svn: 25664
* First part of bug 680:Nate Begeman2006-01-251-6/+151
| | | | | | | Remove TLI.LowerVA* and replace it with SDNodes that are lowered the same way as everything else. llvm-svn: 25606
* Fix an infinite loop I caused by making sure to legalize the flag operandChris Lattner2006-01-241-1/+9
| | | | | | of CALLSEQ_* nodes llvm-svn: 25582
* Fix Regression/CodeGen/SparcV8/2006-01-22-BitConvertLegalize.ll by makingChris Lattner2006-01-231-2/+4
| | | | | | sure that the result of expanding a BIT_CONVERT node is itself legalized. llvm-svn: 25538
* Fix CodeGen/PowerPC/2006-01-20-ShiftPartsCrash.llChris Lattner2006-01-211-15/+15
| | | | llvm-svn: 25496
* remove some unintentionally committed codeChris Lattner2006-01-201-3/+2
| | | | llvm-svn: 25483
* If the target doesn't support f32 natively, insert the FP_EXTEND in target-indepChris Lattner2006-01-201-2/+3
| | | | | | code, so that the LowerReturn code doesn't have to handle it. llvm-svn: 25482
* Another typoEvan Cheng2006-01-191-1/+1
| | | | llvm-svn: 25440
* was ignoring the legalized chain in this case, fixed SPASS on alphaAndrew Lenharth2006-01-181-1/+1
| | | | llvm-svn: 25428
* Bug fix: missing LegalizeOp() on newly created nodes.Evan Cheng2006-01-171-1/+6
| | | | llvm-svn: 25401
* Adding basic support for Dwarf line number debug information.Jim Laskey2006-01-171-1/+1
| | | | | | I promise to keep future commits smaller. llvm-svn: 25396
* Expand case for 64b Legalize, even though no one should end up using thisNate Begeman2006-01-161-4/+43
| | | | | | | (itanium supports bswap natively, alpha should custom lower it using the VAX floating point swapload, ha ha). llvm-svn: 25356
* Allow the target to specify 'expand' if they just require the amount toChris Lattner2006-01-151-9/+19
| | | | | | be subtracted from the stack pointer. llvm-svn: 25331
* Fix custom lowering of dynamic_stackallocChris Lattner2006-01-151-6/+9
| | | | llvm-svn: 25329
* Token chain results are not always the first or last result. Consider ↵Chris Lattner2006-01-141-3/+17
| | | | | | copyfromreg nodes, where they are the middle result (the flag result is last) llvm-svn: 25325
* bswap implementationNate Begeman2006-01-141-0/+68
| | | | llvm-svn: 25312
OpenPOWER on IntegriCloud