[llvm-commits] CVS: llvm/include/llvm/CodeGen/SelectionDAG.h SelectionDAGNodes.h
Chris Lattner
lattner at cs.uiuc.edu
Fri Jan 14 14:37:35 PST 2005
Changes in directory llvm/include/llvm/CodeGen:
SelectionDAG.h updated: 1.12 -> 1.13
SelectionDAGNodes.h updated: 1.15 -> 1.16
---
Log message:
Change CopyFromReg to take and produce a chain node, allowing it to be used
with physregs that are not live across the entire block.
---
Diffs of the changes: (+12 -17)
Index: llvm/include/llvm/CodeGen/SelectionDAG.h
diff -u llvm/include/llvm/CodeGen/SelectionDAG.h:1.12 llvm/include/llvm/CodeGen/SelectionDAG.h:1.13
--- llvm/include/llvm/CodeGen/SelectionDAG.h:1.12 Fri Jan 14 16:07:46 2005
+++ llvm/include/llvm/CodeGen/SelectionDAG.h Fri Jan 14 16:37:20 2005
@@ -99,21 +99,24 @@
SDOperand getCopyToReg(SDOperand Chain, SDOperand N, unsigned Reg) {
// Note: these are auto-CSE'd because the caller doesn't make requests that
// could cause duplicates to occur.
- SDNode *NN = new RegSDNode(ISD::CopyToReg, MVT::Other, Chain, N, Reg);
+ SDNode *NN = new RegSDNode(ISD::CopyToReg, Chain, N, Reg);
+ NN->setValueTypes(MVT::Other);
AllNodes.push_back(NN);
return SDOperand(NN, 0);
}
- SDOperand getCopyFromReg(unsigned Reg, MVT::ValueType VT) {
+ SDOperand getCopyFromReg(unsigned Reg, MVT::ValueType VT, SDOperand Chain) {
// Note: These nodes are auto-CSE'd by the caller of this method.
- SDNode *NN = new RegSDNode(ISD::CopyFromReg, VT, Reg);
+ SDNode *NN = new RegSDNode(ISD::CopyFromReg, Chain, Reg);
+ NN->setValueTypes(VT, MVT::Other);
AllNodes.push_back(NN);
return SDOperand(NN, 0);
}
SDOperand getImplicitDef(SDOperand Chain, unsigned Reg) {
// Note: These nodes are auto-CSE'd by the caller of this method.
- SDNode *NN = new RegSDNode(ISD::ImplicitDef, MVT::Other, Chain, Reg);
+ SDNode *NN = new RegSDNode(ISD::ImplicitDef, Chain, Reg);
+ NN->setValueTypes(MVT::Other);
AllNodes.push_back(NN);
return SDOperand(NN, 0);
}
Index: llvm/include/llvm/CodeGen/SelectionDAGNodes.h
diff -u llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.15 llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.16
--- llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.15 Fri Jan 14 16:07:46 2005
+++ llvm/include/llvm/CodeGen/SelectionDAGNodes.h Fri Jan 14 16:37:20 2005
@@ -648,19 +648,11 @@
unsigned Reg;
protected:
friend class SelectionDAG;
- RegSDNode(unsigned Opc, MVT::ValueType VT, SDOperand Chain,
- SDOperand Src, unsigned reg)
+ RegSDNode(unsigned Opc, SDOperand Chain, SDOperand Src, unsigned reg)
: SDNode(Opc, Chain, Src), Reg(reg) {
- setValueTypes(VT);
- }
- RegSDNode(unsigned Opc, MVT::ValueType VT, SDOperand Chain,
- unsigned reg)
- : SDNode(Opc, Chain), Reg(reg) {
- setValueTypes(VT);
- }
- RegSDNode(unsigned Opc, MVT::ValueType VT, unsigned reg)
- : SDNode(Opc, VT), Reg(reg) {
}
+ RegSDNode(unsigned Opc, SDOperand Chain, unsigned reg)
+ : SDNode(Opc, Chain), Reg(reg) {}
public:
unsigned getReg() const { return Reg; }
@@ -714,10 +706,10 @@
MVT::ValueType ExtraValueType;
protected:
friend class SelectionDAG;
- MVTSDNode(unsigned Opc, MVT::ValueType VT,
+ MVTSDNode(unsigned Opc, MVT::ValueType VT1, MVT::ValueType VT2,
SDOperand Op0, SDOperand Op1, MVT::ValueType EVT)
: SDNode(Opc, Op0, Op1), ExtraValueType(EVT) {
- setValueTypes(VT);
+ setValueTypes(VT1, VT2);
}
MVTSDNode(unsigned Opc, MVT::ValueType VT,
SDOperand Op0, SDOperand Op1, SDOperand Op2, MVT::ValueType EVT)
More information about the llvm-commits
mailing list