summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Implement folding of a bunch of binops with undefChris Lattner2006-04-201-0/+46
| | | | llvm-svn: 27863
* Make these predicates return true for bit_convert(buildvector)'s as well asChris Lattner2006-04-151-0/+8
| | | | | | buildvectors. llvm-svn: 27723
* Implement support for the formal_arguments node. To get this, targets ↵Chris Lattner2006-04-121-0/+1
| | | | | | shouldcustom legalize it and remove their XXXTargetLowering::LowerArguments overload llvm-svn: 27604
* Don't memoize vloads in the load map! Don't memoize them anywhere here, letChris Lattner2006-04-121-2/+0
| | | | | | getNode do it. This fixes CodeGen/Generic/2006-04-11-vecload.ll llvm-svn: 27602
* Add code generator support for VSELECTChris Lattner2006-04-081-8/+9
| | | | llvm-svn: 27542
* Constant fold bitconvert(undef)Chris Lattner2006-04-041-0/+2
| | | | llvm-svn: 27391
* These entries already existChris Lattner2006-04-021-4/+0
| | | | llvm-svn: 27340
* Add some missing node namesChris Lattner2006-04-021-0/+9
| | | | llvm-svn: 27339
* Significantly improve handling of vectors that are live across basic blocks,Chris Lattner2006-03-311-2/+1
| | | | | | | handling cases where the vector elements need promotion, expansion, and when the vector type itself needs to be decimated. llvm-svn: 27278
* new nodeChris Lattner2006-03-281-0/+1
| | | | llvm-svn: 27231
* Add an assertionChris Lattner2006-03-281-0/+2
| | | | llvm-svn: 27228
* Tblgen doesn't like multiple SDNode<> definitions that map to the sameenum ↵Chris Lattner2006-03-281-3/+7
| | | | | | value. Split them into separate enums. llvm-svn: 27201
* Unbreak the build on non-apple compilers :-(Chris Lattner2006-03-271-1/+2
| | | | llvm-svn: 27173
* Try againEvan Cheng2006-03-271-3/+10
| | | | llvm-svn: 27171
* Incorrect check for FP all one'sEvan Cheng2006-03-271-1/+2
| | | | llvm-svn: 27169
* Change isBuildVectorAllOnesInteger to isBuildVectorAllOnes. Also check forEvan Cheng2006-03-271-24/+39
| | | | | | floating point cases. llvm-svn: 27165
* Instead of printing "INTRINSIC" on intrinsic node, print the intrinsic name.Chris Lattner2006-03-271-1/+5
| | | | llvm-svn: 27164
* Add ISD::isBuildVectorAllZeros predicateEvan Cheng2006-03-261-0/+24
| | | | llvm-svn: 27147
* Fix a bug in ISD::isBuildVectorAllOnesInteger that caused it to always returnChris Lattner2006-03-251-2/+3
| | | | | | false llvm-svn: 27131
* Implement the ISD::isBuildVectorAllOnesInteger predicateChris Lattner2006-03-251-1/+32
| | | | llvm-svn: 27130
* fix some bogus assertions: noop bitconverts are legalChris Lattner2006-03-241-10/+4
| | | | llvm-svn: 27032
* Identify the INTRINSIC nodeChris Lattner2006-03-241-0/+1
| | | | llvm-svn: 27020
* Implement simple support for vector casting. This can currently only handleChris Lattner2006-03-221-0/+1
| | | | | | casts between legal vector types. llvm-svn: 26961
* add some trivial support for extractelement.Chris Lattner2006-03-211-0/+2
| | | | llvm-svn: 26928
* Add a hacky workaround for crashes due to vectors live across blocks.Chris Lattner2006-03-211-1/+2
| | | | | | | Note that this code won't work for vectors that aren't legal on the target. Improvements coming. llvm-svn: 26925
* Add very basic support for VECTOR_SHUFFLEChris Lattner2006-03-191-1/+9
| | | | llvm-svn: 26880
* Add SCALAR_TO_VECTOR supportChris Lattner2006-03-191-3/+14
| | | | llvm-svn: 26866
* Rename ConstantVec -> BUILD_VECTOR and VConstant -> VBUILD_VECTOR. ↵Chris Lattner2006-03-191-3/+2
| | | | | | Allow*BUILD_VECTOR to take variable inputs. llvm-svn: 26847
* Change the structure of lowering vector stuff. Note: This breaks someChris Lattner2006-03-181-2/+2
| | | | | | things. llvm-svn: 26840
* add a couple enum valuesChris Lattner2006-03-171-1/+3
| | | | llvm-svn: 26830
* Remove BRTWOWAY*Nate Begeman2006-03-171-15/+1
| | | | | | | | 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. llvm-svn: 26814
* add support for vector->vector castsChris Lattner2006-03-151-2/+2
| | | | llvm-svn: 26788
* Don't depend on the C99 copysign function, implement it ourselves.Chris Lattner2006-03-051-7/+17
| | | | llvm-svn: 26566
* Fix VC++ compilation error.Jeff Cohen2006-03-051-0/+5
| | | | llvm-svn: 26554
* Add some simple copysign foldsChris Lattner2006-03-051-0/+2
| | | | llvm-svn: 26543
* Codegen copysign[f] into a FCOPYSIGN nodeChris Lattner2006-03-051-1/+7
| | | | llvm-svn: 26542
* SDOperand::isOperand should not be a forwarding. It must check *this against ↵Evan Cheng2006-03-031-0/+7
| | | | | | N's operands. llvm-svn: 26502
* Added isOperand(N): true if this is an operand of NEvan Cheng2006-03-031-0/+7
| | | | llvm-svn: 26501
* remove the read/write port/io intrinsics.Chris Lattner2006-03-031-6/+0
| | | | llvm-svn: 26479
* - Added VConstant as an abstract version of ConstantVec.Evan Cheng2006-03-011-12/+19
| | | | | | | - All abstrct vector nodes must have # of elements and element type as their first two operands. llvm-svn: 26432
* Print ConstantPoolSDNode offset field.Evan Cheng2006-02-261-0/+5
| | | | llvm-svn: 26381
* Added an offset field to ConstantPoolSDNode.Evan Cheng2006-02-251-8/+12
| | | | llvm-svn: 26371
* Add checks to make sure we don't create bogus extend nodes, and fix a bugNate Begeman2006-02-181-0/+4
| | | | | | | 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-171-0/+61
| | | | | | | exactly the API we wanted to call into. This fixes the crash on crafty last night. llvm-svn: 26269
* kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBCNate Begeman2006-02-171-2/+4
| | | | | | | and SUBE nodes that actually expose what's going on and allow for significant simplifications in the targets. llvm-svn: 26255
* 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
* * Added SDNode::isOnlyUse().Evan Cheng2006-02-051-3/+18
| | | | | | * Fix hasNUsesOfValue(), it should be const. llvm-svn: 25990
* remove dead fnChris Lattner2006-02-031-11/+0
| | | | llvm-svn: 25935
* Added case HANDLENODE to getOperationName().Evan Cheng2006-02-031-0/+1
| | | | llvm-svn: 25920
OpenPOWER on IntegriCloud