summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Prefer larger register classes over smaller ones when a register occurs inChris Lattner2006-04-021-7/+21
| | | | | | multiple register classes. This fixes PowerPC/2006-04-01-FloatDoubleExtend.ll llvm-svn: 27334
* Make sure to pass enough values to phi nodes when we are dealing withChris Lattner2006-03-311-2/+10
| | | | | | decimated vectors. This fixes UnitTests/Vector/sumarray-dbl.c llvm-svn: 27280
* Significantly improve handling of vectors that are live across basic blocks,Chris Lattner2006-03-311-46/+99
| | | | | | | handling cases where the vector elements need promotion, expansion, and when the vector type itself needs to be decimated. llvm-svn: 27278
* Bug fixes: handle constantexpr insert/extract element operationsChris Lattner2006-03-291-16/+6
| | | | | | | | Handle constantpacked vectors with constantexpr elements. This fixes CodeGen/Generic/vector-constantexpr.ll llvm-svn: 27241
* More bulletproofing of llvm.dbg.declare.Jim Laskey2006-03-281-1/+1
| | | | llvm-svn: 27224
* Tblgen doesn't like multiple SDNode<> definitions that map to the sameenum ↵Chris Lattner2006-03-281-2/+8
| | | | | | value. Split them into separate enums. llvm-svn: 27201
* Reactivate llvm.dbg.declare.Jim Laskey2006-03-271-1/+0
| | | | llvm-svn: 27192
* Disable dbg_declare, it currently breaks the CFE buildChris Lattner2006-03-271-0/+1
| | | | llvm-svn: 27182
* SelectionDAGISel can now natively handle Switch instructions, in the sameNate Begeman2006-03-271-37/+272
| | | | | | | | | | | | | | manner that the LowerSwitch LLVM to LLVM pass does: emitting a binary search tree of basic blocks. The new approach has several advantages: it is faster, it generates significantly smaller code in many cases, and it paves the way for implementing dense switch tables as a jump table by handling switches directly in the instruction selector. This functionality is currently only enabled on x86, but should be safe for every target. In anticipation of making it the default, the cfg is now properly updated in the x86, ppc, and sparc select lowering code. llvm-svn: 27156
* Bullet proof against undefined args produced by upgrading ols-style debug info.Jim Laskey2006-03-261-4/+5
| | | | llvm-svn: 27155
* fix inverted conditionalChris Lattner2006-03-241-2/+2
| | | | llvm-svn: 27089
* Rename for truth in advertising.Jim Laskey2006-03-241-2/+2
| | | | llvm-svn: 27063
* Lower target intrinsics into an INTRINSIC nodeChris Lattner2006-03-241-4/+80
| | | | llvm-svn: 27035
* Handle new forms of llvm.dbg intrinsics.Jim Laskey2006-03-231-24/+69
| | | | llvm-svn: 26988
* Fix a typoChris Lattner2006-03-221-1/+1
| | | | llvm-svn: 26965
* Implement simple support for vector casting. This can currently only handleChris Lattner2006-03-221-43/+21
| | | | | | casts between legal vector types. llvm-svn: 26961
* add some trivial support for extractelement.Chris Lattner2006-03-211-1/+9
| | | | llvm-svn: 26928
* Add a hacky workaround for crashes due to vectors live across blocks.Chris Lattner2006-03-211-0/+26
| | | | | | | Note that this code won't work for vectors that aren't legal on the target. Improvements coming. llvm-svn: 26925
* implement basic support for INSERT_VECTOR_ELT.Chris Lattner2006-03-191-22/+4
| | | | llvm-svn: 26849
* Rename ConstantVec -> BUILD_VECTOR and VConstant -> VBUILD_VECTOR. ↵Chris Lattner2006-03-191-4/+4
| | | | | | Allow*BUILD_VECTOR to take variable inputs. llvm-svn: 26847
* implement vector.ll:test_undefChris Lattner2006-03-191-7/+18
| | | | llvm-svn: 26845
* Change the structure of lowering vector stuff. Note: This breaks someChris Lattner2006-03-181-52/+47
| | | | | | things. llvm-svn: 26840
* Remove BRTWOWAY*Nate Begeman2006-03-171-4/+4
| | | | | | | | 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
* Fix a problem fully scalarizing values.Chris Lattner2006-03-161-1/+4
| | | | llvm-svn: 26811
* Add support for CopyFromReg from vector values. Note: this doesn't supportChris Lattner2006-03-161-104/+119
| | | | | | illegal vector types yet! llvm-svn: 26799
* Teach CreateRegForValue how to handle vector types.Chris Lattner2006-03-161-23/+53
| | | | llvm-svn: 26798
* add support for vector->vector castsChris Lattner2006-03-151-33/+77
| | | | llvm-svn: 26788
* Handle the removal of the debug chain.Jim Laskey2006-03-131-4/+4
| | | | llvm-svn: 26729
* Added a parameter to control whether Constant::getStringValue() would chopEvan Cheng2006-03-101-1/+1
| | | | | | off the result string at the first null terminator. llvm-svn: 26704
* scrape out bits of llvm-dbChris Lattner2006-03-101-9/+0
| | | | llvm-svn: 26701
* Simplify the interface to the schedulers, to not pass the selected heuristicin.Chris Lattner2006-03-101-1/+15
| | | | llvm-svn: 26692
* remove dbg_declare, it's not used yet.Chris Lattner2006-03-091-4/+0
| | | | llvm-svn: 26659
* Get rid of the multiple copies of getStringValue. Now a Constant:: method.Jim Laskey2006-03-081-19/+1
| | | | llvm-svn: 26616
* Change the interface for getting a target HazardRecognizer to be more clean.Chris Lattner2006-03-081-5/+3
| | | | llvm-svn: 26608
* Hoist the HazardRecognizer out of the ScheduleDAGList.cpp file to whereChris Lattner2006-03-061-4/+10
| | | | | | | | targets can implement them. Make the top-down scheduler non-g5-specific. Remove the old testing hazard recognizer. llvm-svn: 26569
* Split the list scheduler into top-down and bottom-up pieces. The priorityChris Lattner2006-03-051-0/+6
| | | | | | | | function of the top-down scheduler are completely bogus currently, and having (future) PPC specific in this file is also wrong, but this is a small incremental step. llvm-svn: 26552
* Codegen copysign[f] into a FCOPYSIGN nodeChris Lattner2006-03-051-1/+12
| | | | llvm-svn: 26542
* Add more vector NodeTypes: VSDIV, VUDIV, VAND, VOR, and VXOR.Evan Cheng2006-03-031-4/+6
| | | | llvm-svn: 26504
* remove the read/write port/io intrinsics.Chris Lattner2006-03-031-23/+0
| | | | llvm-svn: 26479
* Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolvingChris Lattner2006-03-031-3/+12
| | | | | | PR709, and paving the way for future progress. llvm-svn: 26476
* Vector ops lowering.Evan Cheng2006-03-011-4/+10
| | | | llvm-svn: 26436
* Add support for output memory constraints.Chris Lattner2006-02-271-7/+38
| | | | llvm-svn: 26410
* Get VC++ building again.Jeff Cohen2006-02-241-0/+1
| | | | llvm-svn: 26351
* Implement (most of) selection of inline asm memory operands.Chris Lattner2006-02-241-0/+42
| | | | llvm-svn: 26350
* Lower C_Memory operands.Chris Lattner2006-02-241-25/+44
| | | | llvm-svn: 26346
* Fix an endianness problem on big-endian targets with expanded operandsChris Lattner2006-02-231-9/+16
| | | | | | to inline asms. Mark some methods const. llvm-svn: 26334
* Record all of the expanded registers in the DAG and machine instr, fixingChris Lattner2006-02-231-63/+105
| | | | | | several bugs in inline asm expanded operands. llvm-svn: 26332
* This fixes a couple of problems with expansionChris Lattner2006-02-221-9/+23
| | | | llvm-svn: 26318
* Change a whole bunch of code to be built around RegsForValue instead ofChris Lattner2006-02-221-124/+248
| | | | | | | a single register number. This fully implements promotion for inline asms, expand is close but not quite right yet. llvm-svn: 26316
* split register class handling from explicit physreg handling.Chris Lattner2006-02-221-34/+77
| | | | llvm-svn: 26308
OpenPOWER on IntegriCloud