diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2006-11-02 21:07:40 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2006-11-02 21:07:40 +0000 |
commit | 63fd6ad77b6d5e62d90c416231e994245225d731 (patch) | |
tree | 0e41a1dda2630daa35e5e7eebb6d2296edd2e7cb /utils/TableGen/DAGISelEmitter.cpp | |
parent | 9bd6d65e299ee3937c29904821b2b6d8bb87ae4a (diff) | |
download | llvm-63fd6ad77b6d5e62d90c416231e994245225d731.tar.gz llvm-63fd6ad77b6d5e62d90c416231e994245225d731.tar.bz2 llvm-63fd6ad77b6d5e62d90c416231e994245225d731.tar.xz |
Revert last patch which causes tblgen to segfault (why, I'm not sure).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31383 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/DAGISelEmitter.cpp')
-rw-r--r-- | utils/TableGen/DAGISelEmitter.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp index 39480c9664..4f5a731736 100644 --- a/utils/TableGen/DAGISelEmitter.cpp +++ b/utils/TableGen/DAGISelEmitter.cpp @@ -2259,11 +2259,13 @@ public: unsigned OpNo = 0; bool NodeHasChain = NodeHasProperty (N, SDNPHasChain, ISE); bool HasChain = PatternHasProperty(N, SDNPHasChain, ISE); + bool HasOutFlag = PatternHasProperty(N, SDNPOutFlag, ISE); bool EmittedUseCheck = false; if (HasChain) { if (NodeHasChain) OpNo = 1; if (!isRoot) { + const SDNodeInfo &CInfo = ISE.getSDNodeInfo(N->getOperator()); // Multiple uses of actual result? emitCheck(RootName + ".hasOneUse()"); EmittedUseCheck = true; @@ -2327,6 +2329,7 @@ public: (PatternHasProperty(N, SDNPInFlag, ISE) || PatternHasProperty(N, SDNPOptInFlag, ISE) || PatternHasProperty(N, SDNPOutFlag, ISE))) { + const SDNodeInfo &CInfo = ISE.getSDNodeInfo(N->getOperator()); if (!EmittedUseCheck) { // Multiple uses of actual result? emitCheck(RootName + ".hasOneUse()"); @@ -3315,9 +3318,10 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) { PatternsByOpcode[Node->getOperator()].push_back(&PatternsToMatch[i]); } else { const ComplexPattern *CP; - if (dynamic_cast<IntInit*>(Node->getLeafValue())) { + if (IntInit *II = + dynamic_cast<IntInit*>(Node->getLeafValue())) { PatternsByOpcode[getSDNodeNamed("imm")].push_back(&PatternsToMatch[i]); - } else if (NodeGetComplexPattern(Node, *this)) { + } else if ((CP = NodeGetComplexPattern(Node, *this))) { std::vector<Record*> OpNodes = CP->getRootNodes(); for (unsigned j = 0, e = OpNodes.size(); j != e; j++) { PatternsByOpcode[OpNodes[j]] |