aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
AgeCommit message (Collapse)Author
2006-03-28Add an assertionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27228 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-28Tblgen doesn't like multiple SDNode<> definitions that map to the sameenum ↵Chris Lattner
value. Split them into separate enums. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27201 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-27Unbreak the build on non-apple compilers :-(Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27173 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-27Try againEvan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27171 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-27Incorrect check for FP all one'sEvan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27169 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-27Change isBuildVectorAllOnesInteger to isBuildVectorAllOnes. Also check forEvan Cheng
floating point cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27165 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-27Instead of printing "INTRINSIC" on intrinsic node, print the intrinsic name.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27164 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-26Add ISD::isBuildVectorAllZeros predicateEvan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27147 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-25Fix a bug in ISD::isBuildVectorAllOnesInteger that caused it to always returnChris Lattner
false git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27131 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-25Implement the ISD::isBuildVectorAllOnesInteger predicateChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27130 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-24fix some bogus assertions: noop bitconverts are legalChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27032 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-24Identify the INTRINSIC nodeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27020 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-22Implement simple support for vector casting. This can currently only handleChris Lattner
casts between legal vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26961 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-21add some trivial support for extractelement.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26928 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-21Add a hacky workaround for crashes due to vectors live across blocks.Chris Lattner
Note that this code won't work for vectors that aren't legal on the target. Improvements coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26925 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-19Add very basic support for VECTOR_SHUFFLEChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26880 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-19Add SCALAR_TO_VECTOR supportChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26866 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-19Rename ConstantVec -> BUILD_VECTOR and VConstant -> VBUILD_VECTOR. ↵Chris Lattner
Allow*BUILD_VECTOR to take variable inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26847 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-18Change the structure of lowering vector stuff. Note: This breaks someChris Lattner
things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26840 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-17add a couple enum valuesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26830 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-17Remove BRTWOWAY*Nate Begeman
Make the PPC backend not dependent on BRTWOWAY_CC and make the branch selector smarter about the code it generates, fixing a case in the readme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26814 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-15add support for vector->vector castsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26788 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-05Don't depend on the C99 copysign function, implement it ourselves.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26566 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-05Fix VC++ compilation error.Jeff Cohen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26554 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-05Add some simple copysign foldsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26543 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-05Codegen copysign[f] into a FCOPYSIGN nodeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26542 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-03SDOperand::isOperand should not be a forwarding. It must check *this against ↵Evan Cheng
N's operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26502 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-03Added isOperand(N): true if this is an operand of NEvan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26501 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-03remove the read/write port/io intrinsics.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26479 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-01- Added VConstant as an abstract version of ConstantVec.Evan Cheng
- All abstrct vector nodes must have # of elements and element type as their first two operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26432 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-26Print ConstantPoolSDNode offset field.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26381 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-25Added an offset field to ConstantPoolSDNode.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26371 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-18Add checks to make sure we don't create bogus extend nodes, and fix a bugNate Begeman
where we were doing exactly that which was causing failures on x86 and alpha. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26284 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-17Fix a tricky issue in the SimplifyDemandedBits code where CombineTo wasn'tChris Lattner
exactly the API we wanted to call into. This fixes the crash on crafty last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26269 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-17kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBCNate Begeman
and SUBE nodes that actually expose what's going on and allow for significant simplifications in the targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26255 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09Added SelectionDAG::InsertISelMapEntry(). This is used to workaround the gccEvan Cheng
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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26094 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09More changes to reduce frame size.Evan Cheng
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26083 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05* Added SDNode::isOnlyUse().Evan Cheng
* Fix hasNUsesOfValue(), it should be const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25990 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-03remove dead fnChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25935 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-03Added case HANDLENODE to getOperationName().Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25920 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-31Allow the specification of explicit alignments for constant pool entries.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25855 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-29Remove some special case hacks for CALLSEQ_*, using UpdateNodeOperandsChris Lattner
instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25780 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-29Legalize ConstantFP into TargetConstantFP when the target allows. ImplementChris Lattner
custom expansion of ConstantFP nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25772 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-28add another method variantChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25744 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-28add some methods for updating nodesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25742 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-28Remove the ISD::CALL and ISD::TAILCALL nodesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25721 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26initial selectiondag support for new INLINEASM node. Note that inline asmsChris Lattner
with outputs or inputs are not supported yet. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25664 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-25First part of bug 680:Nate Begeman
Remove TLI.LowerVA* and replace it with SDNodes that are lowered the same way as everything else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25606 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-24Fix an infinite loop I caused by making sure to legalize the flag operandChris Lattner
of CALLSEQ_* nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25582 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23another couple selectsAndrew Lenharth
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25551 91177308-0d34-0410-b5e6-96231b3b80d8