aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/CodeGen/SelectionDAG.h3
-rw-r--r--include/llvm/CodeGen/SelectionDAGNodes.h12
2 files changed, 15 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/SelectionDAG.h b/include/llvm/CodeGen/SelectionDAG.h
index b93dd124a1..d7c12c6250 100644
--- a/include/llvm/CodeGen/SelectionDAG.h
+++ b/include/llvm/CodeGen/SelectionDAG.h
@@ -229,6 +229,9 @@ public:
SDOperand Op1, SDOperand Op2, SDOperand Op3);
void SelectNodeTo(SDNode *N, MVT::ValueType VT, unsigned TargetOpc,
SDOperand Op1, SDOperand Op2, SDOperand Op3, SDOperand Op4);
+ void SelectNodeTo(SDNode *N, MVT::ValueType VT, unsigned TargetOpc,
+ SDOperand Op1, SDOperand Op2, SDOperand Op3, SDOperand Op4,
+ SDOperand Op5);
SDOperand getTargetNode(unsigned Opcode, MVT::ValueType VT,
SDOperand Op1) {
diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h
index 56a279c77b..5681a36f5c 100644
--- a/include/llvm/CodeGen/SelectionDAGNodes.h
+++ b/include/llvm/CodeGen/SelectionDAGNodes.h
@@ -678,6 +678,18 @@ protected:
Op0.Val->Uses.push_back(this); Op1.Val->Uses.push_back(this);
Op2.Val->Uses.push_back(this); Op3.Val->Uses.push_back(this);
}
+ void setOperands(SDOperand Op0, SDOperand Op1, SDOperand Op2, SDOperand Op3,
+ SDOperand Op4) {
+ Operands.reserve(5);
+ Operands.push_back(Op0);
+ Operands.push_back(Op1);
+ Operands.push_back(Op2);
+ Operands.push_back(Op3);
+ Operands.push_back(Op4);
+ Op0.Val->Uses.push_back(this); Op1.Val->Uses.push_back(this);
+ Op2.Val->Uses.push_back(this); Op3.Val->Uses.push_back(this);
+ Op4.Val->Uses.push_back(this);
+ }
void addUser(SDNode *User) {
Uses.push_back(User);
}