X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FCodeGen%2FSelectionDAG%2FLegalizeTypes.h;h=6f4c903af404b432b5e0c22f6c45997359704fa3;hb=ee4c619b3b28a42078fc8033e5dccd42fc6edd42;hp=809d5ad1847b2e5f4ee81b376e5d3a1a5af5c687;hpb=e36bfe678df09f46e1eac60b15105c1ccd2c5382;p=oota-llvm.git diff --git a/lib/CodeGen/SelectionDAG/LegalizeTypes.h b/lib/CodeGen/SelectionDAG/LegalizeTypes.h index 809d5ad1847..6f4c903af40 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeTypes.h +++ b/lib/CodeGen/SelectionDAG/LegalizeTypes.h @@ -155,9 +155,9 @@ public: /// ReanalyzeNode - Recompute the NodeID and correct processed operands /// for the specified node, adding it to the worklist if ready. - void ReanalyzeNode(SDNode *N) { + SDNode *ReanalyzeNode(SDNode *N) { N->setNodeId(NewNode); - AnalyzeNewNode(N); + return AnalyzeNewNode(N); } void NoteDeletion(SDNode *Old, SDNode *New) { @@ -168,7 +168,8 @@ public: } private: - void AnalyzeNewNode(SDNode *&N); + void AnalyzeNewNode(SDValue &Val); + SDNode *AnalyzeNewNode(SDNode *N); void ReplaceValueWith(SDValue From, SDValue To); void ReplaceNodeWith(SDNode *From, SDNode *To); @@ -187,8 +188,7 @@ private: void SplitInteger(SDValue Op, MVT LoVT, MVT HiVT, SDValue &Lo, SDValue &Hi); - SDValue GetVectorElementPointer(SDValue VecPtr, MVT EltVT, - SDValue Index); + SDValue GetVectorElementPointer(SDValue VecPtr, MVT EltVT, SDValue Index); //===--------------------------------------------------------------------===// // Integer Promotion Support: LegalizeIntegerTypes.cpp @@ -197,7 +197,7 @@ private: SDValue GetPromotedInteger(SDValue Op) { SDValue &PromotedOp = PromotedIntegers[Op]; RemapNode(PromotedOp); - assert(PromotedOp.Val && "Operand wasn't promoted?"); + assert(PromotedOp.getNode() && "Operand wasn't promoted?"); return PromotedOp; } void SetPromotedInteger(SDValue Op, SDValue Result); @@ -214,6 +214,8 @@ private: void PromoteIntegerResult(SDNode *N, unsigned ResNo); SDValue PromoteIntRes_AssertSext(SDNode *N); SDValue PromoteIntRes_AssertZext(SDNode *N); + SDValue PromoteIntRes_Atomic1(AtomicSDNode *N); + SDValue PromoteIntRes_Atomic2(AtomicSDNode *N); SDValue PromoteIntRes_BIT_CONVERT(SDNode *N); SDValue PromoteIntRes_BSWAP(SDNode *N); SDValue PromoteIntRes_BUILD_PAIR(SDNode *N); @@ -324,7 +326,7 @@ private: SDValue GetSoftenedFloat(SDValue Op) { SDValue &SoftenedOp = SoftenedFloats[Op]; RemapNode(SoftenedOp); - assert(SoftenedOp.Val && "Operand wasn't converted to integer?"); + assert(SoftenedOp.getNode() && "Operand wasn't converted to integer?"); return SoftenedOp; } void SetSoftenedFloat(SDValue Op, SDValue Result); @@ -341,6 +343,7 @@ private: SDValue SoftenFloatRes_FMUL(SDNode *N); SDValue SoftenFloatRes_FP_EXTEND(SDNode *N); SDValue SoftenFloatRes_FP_ROUND(SDNode *N); + SDValue SoftenFloatRes_FPOW(SDNode *N); SDValue SoftenFloatRes_FPOWI(SDNode *N); SDValue SoftenFloatRes_FSUB(SDNode *N); SDValue SoftenFloatRes_LOAD(SDNode *N); @@ -403,7 +406,7 @@ private: SDValue GetScalarizedVector(SDValue Op) { SDValue &ScalarizedOp = ScalarizedVectors[Op]; RemapNode(ScalarizedOp); - assert(ScalarizedOp.Val && "Operand wasn't scalarized?"); + assert(ScalarizedOp.getNode() && "Operand wasn't scalarized?"); return ScalarizedOp; } void SetScalarizedVector(SDValue Op, SDValue Result); @@ -414,6 +417,7 @@ private: SDValue ScalarizeVecRes_UnaryOp(SDNode *N); SDValue ScalarizeVecRes_BIT_CONVERT(SDNode *N); + SDValue ScalarizeVecRes_EXTRACT_SUBVECTOR(SDNode *N); SDValue ScalarizeVecRes_FPOWI(SDNode *N); SDValue ScalarizeVecRes_INSERT_VECTOR_ELT(SDNode *N); SDValue ScalarizeVecRes_LOAD(LoadSDNode *N); @@ -425,6 +429,7 @@ private: // Vector Operand Scalarization: <1 x ty> -> ty. bool ScalarizeVectorOperand(SDNode *N, unsigned OpNo); SDValue ScalarizeVecOp_BIT_CONVERT(SDNode *N); + SDValue ScalarizeVecOp_CONCAT_VECTORS(SDNode *N); SDValue ScalarizeVecOp_EXTRACT_VECTOR_ELT(SDNode *N); SDValue ScalarizeVecOp_STORE(StoreSDNode *N, unsigned OpNo); @@ -453,6 +458,7 @@ private: // Vector Operand Splitting: <128 x ty> -> 2 x <64 x ty>. bool SplitVectorOperand(SDNode *N, unsigned OpNo); + SDValue SplitVecOp_UnaryOp(SDNode *N); SDValue SplitVecOp_BIT_CONVERT(SDNode *N); SDValue SplitVecOp_EXTRACT_SUBVECTOR(SDNode *N);