summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Move ComputeMaskedBits, MaskedValueIsZero, and ComputeNumSignBits fromDan Gohman2007-06-221-3/+3
| | | | | | | | | TargetLowering to SelectionDAG so that they have more convenient access to the current DAG, in preparation for the ValueType routines being changed from standalone functions to members of SelectionDAG for the pre-legalize vector type changes. llvm-svn: 37704
* Tidy up ValueType names in comments.Dan Gohman2007-06-211-2/+2
| | | | llvm-svn: 37688
* make ComputeTopDownOrdering significantly faster and use less stack spaceChris Lattner2007-06-181-32/+37
| | | | | | by making it non-recursive llvm-svn: 37629
* Rename MVT::getVectorBaseType to MVT::getVectorElementType.Dan Gohman2007-06-141-5/+5
| | | | llvm-svn: 37579
* Introduce new SelectionDAG node opcodes VEXTRACT_SUBVECTOR andDan Gohman2007-06-131-0/+63
| | | | | | | | | | | | | VCONCAT_VECTORS. Use these for CopyToReg and CopyFromReg legalizing in the case that the full register is to be split into subvectors instead of scalars. This replaces uses of VBIT_CONVERT to present values as vector-of-vector types in order to make whole subvectors accessible via BUILD_VECTOR and EXTRACT_VECTOR_ELT. This is in preparation for adding extended ValueType values, where having vector-of-vector types is undesirable. llvm-svn: 37569
* Pass the DAG to SDNode::dump to let it do more detailed dumps in some cases.Dan Gohman2007-06-041-5/+5
| | | | llvm-svn: 37413
* Qualify several calls to functions in the MVT namespace, for consistency.Dan Gohman2007-05-181-13/+15
| | | | llvm-svn: 37230
* add expand support for ADDC/SUBC/ADDE/SUBE so we can codegen 128-bit add/sub ↵Chris Lattner2007-05-171-0/+42
| | | | | | on 32-bit (or less) targets llvm-svn: 37168
* Propagate alignment/volatility in two places.Chris Lattner2007-05-051-4/+16
| | | | | | | | Implement support for expanding a bitcast from an illegal vector type to a legal one (e.g. 4xi32 -> 4xf32 in SSE1). This fixes PR1371 and CodeGen/X86/2007-05-05-VecCastExpand.ll llvm-svn: 36787
* memory inputs to an inline asm are required to have an address available.Chris Lattner2007-04-281-2/+2
| | | | | | | | | If the operand is not already an indirect operand, spill it to a constant pool entry or a stack slot. This fixes PR1356 and CodeGen/X86/2007-04-27-InlineAsm-IntMemInput.ll llvm-svn: 36536
* Fix incorrect legalization of EHSELECTOR. This fixesChris Lattner2007-04-271-6/+10
| | | | | | CodeGen/Generic/2007-04-14-EHSelectorCrash.ll and PR1326 llvm-svn: 36510
* Expand UINT_TO_FP in turns of SINT_TO_FP when UINTTOFP_* libcalls are not ↵Evan Cheng2007-04-271-4/+25
| | | | | | available. llvm-svn: 36501
* Allow the lowering of ISD::GLOBAL_OFFSET_TABLE.Lauro Ramos Venancio2007-04-201-1/+1
| | | | llvm-svn: 36290
* Implement "general dynamic", "initial exec" and "local exec" TLS models forLauro Ramos Venancio2007-04-201-0/+2
| | | | | | X86 32 bits. llvm-svn: 36283
* 1. Insert custom lowering hooks for ISD::ROTR and ISD::ROTL.Scott Michel2007-04-021-3/+17
| | | | | | | | | 2. Help DAGCombiner recognize zero/sign/any-extended versions of ROTR and ROTL patterns. This was motivated by the X86/rotate.ll testcase, which should now generate code for other platforms (and soon-to-come platforms.) Rewrote code slightly to make it easier to read. llvm-svn: 35605
* don't rely on ADLChris Lattner2007-03-241-1/+1
| | | | llvm-svn: 35299
* Refactoring of formal parameter flags. Enable properly use ofAnton Korobeynikov2007-03-071-7/+4
| | | | | | zext/sext/aext stuff. llvm-svn: 35008
* big endian 32-bit systems (e.g. ppc32) want to return the high reg first, notChris Lattner2007-03-061-0/+5
| | | | | | | the lo-reg first. This is fallout from my ppc calling conv change yesterday, it fixes test/ExecutionEngine/2003-05-06-LivenessClobber.llx llvm-svn: 34983
* Fix CodeGen/Generic/fpowi-promote.ll and PR1239Chris Lattner2007-03-031-0/+12
| | | | llvm-svn: 34893
* Add an expand action for ISD label which just deletes the label.Chris Lattner2007-03-031-0/+3
| | | | | | This "fixes" PR1238. llvm-svn: 34890
* Chain is on second operand.Jim Laskey2007-02-281-4/+23
| | | | llvm-svn: 34759
* Drop unused operand.Jim Laskey2007-02-241-2/+0
| | | | llvm-svn: 34555
* Simplify lowering and selection of exception ops.Jim Laskey2007-02-221-2/+26
| | | | llvm-svn: 34491
* Selection and lowering for exception handling.Jim Laskey2007-02-211-0/+2
| | | | llvm-svn: 34481
* For PR1195:Reid Spencer2007-02-151-8/+8
| | | | | | | Change use of "packed" term to "vector" in comments, strings, variable names, etc. llvm-svn: 34300
* For PR1195:Reid Spencer2007-02-151-1/+1
| | | | | | | Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and PackedTyID -> VectorTyID. No functional changes. llvm-svn: 34293
* Generalize TargetData strings, to support more interesting forms of data.Chris Lattner2007-02-141-3/+3
| | | | | | Patch by Scott Michel. llvm-svn: 34266
* implement expand of truncate. This allows truncates from i128 to i64 toChris Lattner2007-02-131-0/+13
| | | | | | be supported on 32-bit hosts. llvm-svn: 34257
* Make use of TLI.SimplifySetCC() in LegalizeSetCCOperands().Evan Cheng2007-02-081-8/+36
| | | | llvm-svn: 34066
* swtich vector-> smallvector, speeding up selectiondag stuff 1%Chris Lattner2007-02-041-2/+2
| | | | llvm-svn: 33861
* Switch promoted/expanded ops over to using a DenseMap. Vector related mapsChris Lattner2007-02-041-8/+7
| | | | | | aren't worth it. llvm-svn: 33860
* switch LegalizedNodes from std::map to a DenseMap. This speeds up iselChris Lattner2007-02-041-3/+15
| | | | | | time as a whole on kc++ by 11%. llvm-svn: 33857
* Eliminate some malloc traffic from LegalizeAllNodesNotLeadingTo, speedingChris Lattner2007-02-041-4/+5
| | | | | | up isel on kimwitu by 0.7%. llvm-svn: 33853
* Switch ComputeTopDownOrdering over to using a densemap. This speeds upChris Lattner2007-02-031-2/+3
| | | | | | isel as a whole by 3.3%. llvm-svn: 33809
* PastoEvan Cheng2007-02-031-1/+1
| | | | llvm-svn: 33806
* Fixed uninitialized stuff inside LegalizeDAG. Fortunately, the onlyAnton Korobeynikov2007-02-011-4/+5
| | | | | | | affected part is codegen of "memove" inside x86 backend. This fixes PR1144 llvm-svn: 33752
* Fit in 80 columnsChris Lattner2007-02-011-4/+4
| | | | llvm-svn: 33745
* Allow the target to override the ISD::CondCode that's to be used to test theEvan Cheng2007-01-311-18/+4
| | | | | | result of the comparison libcall against zero. llvm-svn: 33701
* Finish off bug 680, allowing targets to custom lower frame and returnNate Begeman2007-01-291-0/+10
| | | | | | address nodes. llvm-svn: 33636
* More cleanupAnton Korobeynikov2007-01-281-2/+2
| | | | llvm-svn: 33605
* Propagate changes from my local tree. This patch includes:Anton Korobeynikov2007-01-281-2/+4
| | | | | | | | | | | | | | | | | | | | | | 1. New parameter attribute called 'inreg'. It has meaning "place this parameter in registers, if possible". This is some generalization of gcc's regparm(n) attribute. It's currently used only in X86-32 backend. 2. Completely rewritten CC handling/lowering code inside X86 backend. Merged stdcall + c CCs and fastcall + fast CC. 3. Dropped CSRET CC. We cannot add struct return variant for each target-specific CC (e.g. stdcall + csretcc and so on). 4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in on first attribute has meaning 'This is hidden pointer to structure return. Handle it gently'. 5. Fixed small bug in llvm-extract + add new feature to FunctionExtraction pass, which relinks all internal-linkaged callees from deleted function to external linkage. This will allow further linking everything together. NOTEs: 1. Documentation will be updated soon. 2. llvm-upgrade should be improved to translate csret => sret. Before this, there will be some unexpected test fails. llvm-svn: 33597
* Change the MachineDebugInfo to MachineModuleInfo to better reflect usageJim Laskey2007-01-261-4/+4
| | | | | | for debugging and exception handling. llvm-svn: 33550
* Make LABEL a builtin opcode.Jim Laskey2007-01-261-6/+6
| | | | llvm-svn: 33537
* Teach TargetData to handle 'preferred' alignment for each target, and useChris Lattner2007-01-201-4/+9
| | | | | | these alignment amounts to align scalars when we can. Patch by Scott Michel! llvm-svn: 33409
* For PR1043:Reid Spencer2007-01-191-0/+1
| | | | | | | | | | | | | | This is the final patch for this PR. It implements some minor cleanup in the use of IntegerType, to wit: 1. Type::getIntegerTypeMask -> IntegerType::getBitMask 2. Type::Int*Ty changed to IntegerType* from Type* 3. ConstantInt::getType() returns IntegerType* now, not Type* This also fixes PR1120. Patch by Sheng Zhou. llvm-svn: 33370
* Store default libgcc routine names and allow them to be redefined by target.Evan Cheng2007-01-121-82/+128
| | | | llvm-svn: 33105
* Expand fcopysign to the bitwise sequence if select is marked as expensive.Evan Cheng2007-01-051-4/+6
| | | | llvm-svn: 32940
* Bug in ExpandFCOPYSIGNToBitwiseOps(). Clear the old sign bit of operand 0Evan Cheng2007-01-051-4/+14
| | | | | | before or'ing in the sign bit of operand 1. llvm-svn: 32930
* Expand fcopysign to a series of bitwise of operations when it's profitable toEvan Cheng2007-01-041-19/+46
| | | | | | do so. llvm-svn: 32881
* Clean up from recent changes. Comment the new parameter to ExpandLibCall.Reid Spencer2007-01-031-24/+20
| | | | | | Consolidate some lines of code and remove duplication. llvm-svn: 32829
OpenPOWER on IntegriCloud