Move TRUNCSTORE to using a VTSDNode operand instead of being a MVTSDNode.

Also update some comments that Andrew forgot to update when he changed
loads/stores.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22365 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2005-07-10 00:28:25 +00:00
parent 15e4b01920
commit f7db8c69a1
2 changed files with 9 additions and 15 deletions

View File

@ -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<SDOperand> &Children);
SDOperand getNode(unsigned Opcode, std::vector<MVT::ValueType> &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

View File

@ -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;
}
};