aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/CodeGen/SelectionDAGNodes.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/CodeGen/SelectionDAGNodes.h')
-rw-r--r--include/llvm/CodeGen/SelectionDAGNodes.h11
1 files changed, 4 insertions, 7 deletions
diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h
index 4a40e83..5e4be98 100644
--- a/include/llvm/CodeGen/SelectionDAGNodes.h
+++ b/include/llvm/CodeGen/SelectionDAGNodes.h
@@ -970,10 +970,10 @@ protected:
/// MorphNodeTo - This clears the return value and operands list, and sets the
/// opcode of the node to the specified value. This should only be used by
/// the SelectionDAG class.
- void MorphNodeTo(unsigned Opc) {
+ void MorphNodeTo(unsigned Opc, SDVTList L) {
NodeType = Opc;
- ValueList = 0;
- NumValues = 0;
+ ValueList = L.VTs;
+ NumValues = L.NumVTs;
// Clear the operands list, updating used nodes to remove this from their
// use list.
@@ -1058,10 +1058,7 @@ class HandleSDNode : public SDNode {
virtual void ANCHOR(); // Out-of-line virtual method to give class a home.
public:
HandleSDNode(SDOperand X) : SDNode(ISD::HANDLENODE, X) {}
- ~HandleSDNode() {
- MorphNodeTo(ISD::HANDLENODE); // Drops operand uses.
- }
-
+ ~HandleSDNode();
SDOperand getValue() const { return getOperand(0); }
};