diff options
author | Andrew Lenharth <andrewl@lenharth.org> | 2008-02-21 16:11:38 +0000 |
---|---|---|
committer | Andrew Lenharth <andrewl@lenharth.org> | 2008-02-21 16:11:38 +0000 |
commit | c1c7bd610a1647d8e7eaeb4cc38ca1a85ae5e271 (patch) | |
tree | 26d759a60ffbf5c2607092985c35616e2e2f0bb9 | |
parent | 39442afb36cfe39315accc36eb2e8355689f0882 (diff) | |
download | external_llvm-c1c7bd610a1647d8e7eaeb4cc38ca1a85ae5e271.zip external_llvm-c1c7bd610a1647d8e7eaeb4cc38ca1a85ae5e271.tar.gz external_llvm-c1c7bd610a1647d8e7eaeb4cc38ca1a85ae5e271.tar.bz2 |
Better names as per Evan's request
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47435 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/CodeGen/SelectionDAG.h | 4 | ||||
-rw-r--r-- | include/llvm/CodeGen/SelectionDAGNodes.h | 19 | ||||
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 19 |
3 files changed, 22 insertions, 20 deletions
diff --git a/include/llvm/CodeGen/SelectionDAG.h b/include/llvm/CodeGen/SelectionDAG.h index 70c7185..c402958 100644 --- a/include/llvm/CodeGen/SelectionDAG.h +++ b/include/llvm/CodeGen/SelectionDAG.h @@ -359,12 +359,12 @@ public: /// getAtomic - Gets a node for an atomic op, produces result and chain, takes // 3 operands SDOperand getAtomic(unsigned Opcode, SDOperand Chain, SDOperand Ptr, - SDOperand A2, SDOperand A3, MVT::ValueType VT); + SDOperand Cmp, SDOperand Swp, MVT::ValueType VT); /// getAtomic - Gets a node for an atomic op, produces result and chain, takes // 2 operands SDOperand getAtomic(unsigned Opcode, SDOperand Chain, SDOperand Ptr, - SDOperand A2, MVT::ValueType VT); + SDOperand Val, MVT::ValueType VT); /// getLoad - Loads are not normal binary operators: their result type is not /// determined by their operands, and they produce a value AND a token chain. diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h index 293bb73..bffcfb2 100644 --- a/include/llvm/CodeGen/SelectionDAGNodes.h +++ b/include/llvm/CodeGen/SelectionDAGNodes.h @@ -1193,26 +1193,27 @@ class AtomicSDNode : public SDNode { SDOperand Ops[4]; MVT::ValueType OrigVT; public: - AtomicSDNode(unsigned Opc, SDVTList VTL, SDOperand Chain, SDOperand X, - SDOperand Y, SDOperand Z, MVT::ValueType VT) + AtomicSDNode(unsigned Opc, SDVTList VTL, SDOperand Chain, SDOperand Ptr, + SDOperand Cmp, SDOperand Swp, MVT::ValueType VT) : SDNode(Opc, VTL) { Ops[0] = Chain; - Ops[1] = X; - Ops[2] = Y; - Ops[3] = Z; + Ops[1] = Ptr; + Ops[2] = Swp; + Ops[3] = Cmp; InitOperands(Ops, 4); OrigVT=VT; } - AtomicSDNode(unsigned Opc, SDVTList VTL, SDOperand Chain, SDOperand X, - SDOperand Y, MVT::ValueType VT) + AtomicSDNode(unsigned Opc, SDVTList VTL, SDOperand Chain, SDOperand Ptr, + SDOperand Val, MVT::ValueType VT) : SDNode(Opc, VTL) { Ops[0] = Chain; - Ops[1] = X; - Ops[2] = Y; + Ops[1] = Ptr; + Ops[2] = Val; InitOperands(Ops, 3); OrigVT=VT; } MVT::ValueType getVT() const { return OrigVT; } + bool isCompareAndSwap() const { return getOpcode() == ISD::ATOMIC_LCS; } }; class StringSDNode : public SDNode { diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 803a38c..a12ff10 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -2428,37 +2428,38 @@ SDOperand SelectionDAG::getMemset(SDOperand Chain, SDOperand Dest, } SDOperand SelectionDAG::getAtomic(unsigned Opcode, SDOperand Chain, - SDOperand Ptr, SDOperand A2, - SDOperand A3, MVT::ValueType VT) { + SDOperand Ptr, SDOperand Cmp, + SDOperand Swp, MVT::ValueType VT) { assert(Opcode == ISD::ATOMIC_LCS && "Invalid Atomic Op"); - SDVTList VTs = getVTList(A2.getValueType(), MVT::Other); + assert(Cmp.getValueType() == Swp.getValueType() && "Invalid Atomic Op Types"); + SDVTList VTs = getVTList(Cmp.getValueType(), MVT::Other); FoldingSetNodeID ID; - SDOperand Ops[] = {Chain, Ptr, A2, A3}; + SDOperand Ops[] = {Chain, Ptr, Cmp, Swp}; AddNodeIDNode(ID, Opcode, VTs, Ops, 4); ID.AddInteger((unsigned int)VT); void* IP = 0; if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) return SDOperand(E, 0); - SDNode* N = new AtomicSDNode(Opcode, VTs, Chain, Ptr, A2, A3, VT); + SDNode* N = new AtomicSDNode(Opcode, VTs, Chain, Ptr, Cmp, Swp, VT); CSEMap.InsertNode(N, IP); AllNodes.push_back(N); return SDOperand(N, 0); } SDOperand SelectionDAG::getAtomic(unsigned Opcode, SDOperand Chain, - SDOperand Ptr, SDOperand A2, + SDOperand Ptr, SDOperand Val, MVT::ValueType VT) { assert((Opcode == ISD::ATOMIC_LAS || Opcode == ISD::ATOMIC_SWAP) && "Invalid Atomic Op"); - SDVTList VTs = getVTList(A2.getValueType(), MVT::Other); + SDVTList VTs = getVTList(Val.getValueType(), MVT::Other); FoldingSetNodeID ID; - SDOperand Ops[] = {Chain, Ptr, A2}; + SDOperand Ops[] = {Chain, Ptr, Val}; AddNodeIDNode(ID, Opcode, VTs, Ops, 3); ID.AddInteger((unsigned int)VT); void* IP = 0; if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) return SDOperand(E, 0); - SDNode* N = new AtomicSDNode(Opcode, VTs, Chain, Ptr, A2, VT); + SDNode* N = new AtomicSDNode(Opcode, VTs, Chain, Ptr, Val, VT); CSEMap.InsertNode(N, IP); AllNodes.push_back(N); return SDOperand(N, 0); |