- /// The constructors that supply DebugLoc explicitly should be preferred
- /// for new code.
- SDNode(unsigned Opc, SDVTList VTs, const SDValue *Ops, unsigned NumOps)
- : NodeType(Opc), OperandsNeedDelete(true), SubclassData(0),
- NodeId(-1), debugLoc(DebugLoc::getUnknownLoc()),
- OperandList(NumOps ? new SDUse[NumOps] : 0),
- ValueList(VTs.VTs),
- NumOperands(NumOps), NumValues(VTs.NumVTs),
- UseList(NULL) {
- for (unsigned i = 0; i != NumOps; ++i) {
- OperandList[i].setUser(this);
- OperandList[i].setInitial(Ops[i]);
- }
- }
-
- /// This constructor adds no operands itself; operands can be
- /// set later with InitOperands.
- SDNode(unsigned Opc, SDVTList VTs)
- : NodeType(Opc), OperandsNeedDelete(false), SubclassData(0),
- NodeId(-1), debugLoc(DebugLoc::getUnknownLoc()), OperandList(0),
- ValueList(VTs.VTs), NumOperands(0), NumValues(VTs.NumVTs),
- UseList(NULL) {}
-
- /// The next two constructors specify DebugLoc explicitly; the intent
- /// is that they will replace the above two over time, and eventually
- /// the ones above can be removed.
- SDNode(unsigned Opc, const DebugLoc dl, SDVTList VTs, const SDValue *Ops,