diff options
author | Mon P Wang <wangmp@apple.com> | 2008-06-25 08:15:39 +0000 |
---|---|---|
committer | Mon P Wang <wangmp@apple.com> | 2008-06-25 08:15:39 +0000 |
commit | 28873106309db515d58889a4c4fa3e0a92d1b60e (patch) | |
tree | 55754230852c1d76c8058edec38ed42a47b3ddc7 /utils/TableGen/DAGISelEmitter.cpp | |
parent | ea9e516e86b3a6ca1b3a5b374365735e1cca414d (diff) | |
download | llvm-28873106309db515d58889a4c4fa3e0a92d1b60e.tar.gz llvm-28873106309db515d58889a4c4fa3e0a92d1b60e.tar.bz2 llvm-28873106309db515d58889a4c4fa3e0a92d1b60e.tar.xz |
Added MemOperands to Atomic operations since Atomics touches memory.
Added abstract class MemSDNode for any Node that have an associated MemOperand
Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and
atomic.lss => atomic.load.sub
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52706 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/DAGISelEmitter.cpp')
-rw-r--r-- | utils/TableGen/DAGISelEmitter.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp index 8d89eeeb7a..5075d483b2 100644 --- a/utils/TableGen/DAGISelEmitter.cpp +++ b/utils/TableGen/DAGISelEmitter.cpp @@ -394,11 +394,8 @@ public: // Save loads/stores matched by a pattern. if (!N->isLeaf() && N->getName().empty()) { - std::string EnumName = N->getOperator()->getValueAsString("Opcode"); - if (EnumName == "ISD::LOAD" || - EnumName == "ISD::STORE") { + if (NodeHasProperty(N, SDNPMemOperand, CGP)) LSI.push_back(RootName); - } } bool isRoot = (P == NULL); @@ -1082,7 +1079,7 @@ public: std::vector<std::string>::const_iterator mi, mie; for (mi = LSI.begin(), mie = LSI.end(); mi != mie; ++mi) { emitCode("SDOperand LSI_" + *mi + " = " - "CurDAG->getMemOperand(cast<LSBaseSDNode>(" + + "CurDAG->getMemOperand(cast<MemSDNode>(" + *mi + ")->getMemOperand());"); if (IsVariadic) emitCode("Ops" + utostr(OpsNo) + ".push_back(LSI_" + *mi + ");"); |