diff --git a/include/llvm/CodeGen/SelectionDAG.h b/include/llvm/CodeGen/SelectionDAG.h index fb9a10ff958..355053d7723 100644 --- a/include/llvm/CodeGen/SelectionDAG.h +++ b/include/llvm/CodeGen/SelectionDAG.h @@ -170,6 +170,9 @@ public: SDOperand N1, SDOperand N2, SDOperand N3); SDOperand getNode(unsigned Opcode, MVT::ValueType VT, SDOperand N1, SDOperand N2, SDOperand N3, SDOperand N4); + SDOperand getNode(unsigned Opcode, MVT::ValueType VT, + SDOperand N1, SDOperand N2, SDOperand N3, SDOperand N4, + SDOperand N5); SDOperand getNode(unsigned Opcode, MVT::ValueType VT, std::vector &Children); SDOperand getNode(unsigned Opcode, std::vector &ResultTys, @@ -183,9 +186,6 @@ public: SDOperand N, MVT::ValueType EVT); SDOperand getNode(unsigned Opcode, MVT::ValueType VT, SDOperand N1, SDOperand N2, SDOperand N3, MVT::ValueType EVT); - SDOperand getNode(unsigned Opcode, MVT::ValueType VT, SDOperand N1, - SDOperand N2, SDOperand N3, SDOperand N4, - MVT::ValueType EVT); /// getLoad - Loads are not normal binary operators: their result type is not diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h index a289772ff06..65287661640 100644 --- a/include/llvm/CodeGen/SelectionDAGNodes.h +++ b/include/llvm/CodeGen/SelectionDAGNodes.h @@ -176,7 +176,8 @@ namespace ISD { FNEG, FABS, FSQRT, FSIN, FCOS, // Other operators. LOAD and STORE have token chains as their first - // operand, then the same operands as an LLVM load/store instruction. + // operand, then the same operands as an LLVM load/store instruction, then a + // SRCVALUE node that provides alias analysis information. LOAD, STORE, // EXTLOAD, SEXTLOAD, ZEXTLOAD - These three operators are instances of the @@ -197,9 +198,9 @@ namespace ISD { // TRUNCSTORE - This operators truncates (for integer) or rounds (for FP) a // value and stores it to memory in one operation. This can be used for - // either integer or floating point operands, and the stored type - // represented as the 'extra' value type in the MVTSDNode representing the - // operator. This node has the same three operands as a standard store. + // either integer or floating point operands. The first four operands of + // this are the same as a standard store. The fifth is the ValueType to + // store it as (which will be smaller than the source value). TRUNCSTORE, // DYNAMIC_STACKALLOC - Allocate some number of bytes on the stack aligned @@ -877,12 +878,6 @@ protected: : SDNode(Opc, Op0, Op1, Op2), ExtraValueType(EVT) { setValueTypes(VT1, VT2); } - - MVTSDNode(unsigned Opc, MVT::ValueType VT, - SDOperand Op0, SDOperand Op1, SDOperand Op2, SDOperand Op3, MVT::ValueType EVT) - : SDNode(Opc, Op0, Op1, Op2, Op3), ExtraValueType(EVT) { - setValueTypes(VT); - } public: MVT::ValueType getExtraValueType() const { return ExtraValueType; } @@ -892,8 +887,7 @@ public: return N->getOpcode() == ISD::EXTLOAD || N->getOpcode() == ISD::SEXTLOAD || - N->getOpcode() == ISD::ZEXTLOAD || - N->getOpcode() == ISD::TRUNCSTORE; + N->getOpcode() == ISD::ZEXTLOAD; } };