diff options
author | Chris Lattner <sabre@nondot.org> | 2010-02-25 01:56:48 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-02-25 01:56:48 +0000 |
commit | 60df53e30a7e39c884f4ca4eb03346bea5825109 (patch) | |
tree | 8e8d8be88cebe5522a27c7768127b9c338af7837 /utils/TableGen | |
parent | 3ce2b097973e4b1a553373471cf2a5d9805903c5 (diff) |
rename PushMatcherNode -> ScopeMatcherNode to more accurately
reflect what it does. Switch the sense of the Next and the Check
arms to be more logical. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97093 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen')
-rw-r--r-- | utils/TableGen/DAGISelEmitter.cpp | 2 | ||||
-rw-r--r-- | utils/TableGen/DAGISelMatcher.cpp | 8 | ||||
-rw-r--r-- | utils/TableGen/DAGISelMatcher.h | 26 | ||||
-rw-r--r-- | utils/TableGen/DAGISelMatcherEmitter.cpp | 18 | ||||
-rw-r--r-- | utils/TableGen/DAGISelMatcherOpt.cpp | 21 |
5 files changed, 37 insertions, 38 deletions
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp index 0a61251621..4aa888b408 100644 --- a/utils/TableGen/DAGISelEmitter.cpp +++ b/utils/TableGen/DAGISelEmitter.cpp @@ -1972,7 +1972,7 @@ void DAGISelEmitter::run(raw_ostream &OS) { if (Matcher == 0) Matcher = N; else - Matcher = new PushMatcherNode(N, Matcher); + Matcher = new ScopeMatcherNode(N, Matcher); } Matcher = OptimizeMatcher(Matcher); diff --git a/utils/TableGen/DAGISelMatcher.cpp b/utils/TableGen/DAGISelMatcher.cpp index 0b0a1be0d6..6588bc00e6 100644 --- a/utils/TableGen/DAGISelMatcher.cpp +++ b/utils/TableGen/DAGISelMatcher.cpp @@ -24,10 +24,10 @@ void MatcherNode::printNext(raw_ostream &OS, unsigned indent) const { } -void PushMatcherNode::print(raw_ostream &OS, unsigned indent) const { - OS.indent(indent) << "Push\n"; - printNext(OS, indent+2); - Failure->print(OS, indent); +void ScopeMatcherNode::print(raw_ostream &OS, unsigned indent) const { + OS.indent(indent) << "Scope\n"; + Check->print(OS, indent+2); + printNext(OS, indent); } void RecordMatcherNode::print(raw_ostream &OS, unsigned indent) const { diff --git a/utils/TableGen/DAGISelMatcher.h b/utils/TableGen/DAGISelMatcher.h index 3505bb82b6..757bf60658 100644 --- a/utils/TableGen/DAGISelMatcher.h +++ b/utils/TableGen/DAGISelMatcher.h @@ -39,7 +39,7 @@ class MatcherNode { public: enum KindTy { // Matcher state manipulation. - Push, // Push a checking scope. + Scope, // Push a checking scope. RecordNode, // Record the current node. RecordChild, // Record a child of the current node. RecordMemRef, // Record the memref in the current node. @@ -100,24 +100,24 @@ protected: void printNext(raw_ostream &OS, unsigned indent) const; }; -/// PushMatcherNode - This pushes a failure scope on the stack and evaluates -/// 'Next'. If 'Next' fails to match, it pops its scope and attempts to -/// match 'Failure'. -class PushMatcherNode : public MatcherNode { - OwningPtr<MatcherNode> Failure; +/// ScopeMatcherNode - This pushes a failure scope on the stack and evaluates +/// 'Check'. If 'Check' fails to match, it pops its scope and continues on to +/// 'Next'. +class ScopeMatcherNode : public MatcherNode { + OwningPtr<MatcherNode> Check; public: - PushMatcherNode(MatcherNode *next = 0, MatcherNode *failure = 0) - : MatcherNode(Push), Failure(failure) { + ScopeMatcherNode(MatcherNode *check = 0, MatcherNode *next = 0) + : MatcherNode(Scope), Check(check) { setNext(next); } - MatcherNode *getFailure() { return Failure.get(); } - const MatcherNode *getFailure() const { return Failure.get(); } - void setFailure(MatcherNode *N) { Failure.reset(N); } - OwningPtr<MatcherNode> &getFailurePtr() { return Failure; } + MatcherNode *getCheck() { return Check.get(); } + const MatcherNode *getCheck() const { return Check.get(); } + void setCheck(MatcherNode *N) { Check.reset(N); } + OwningPtr<MatcherNode> &getCheckPtr() { return Check; } static inline bool classof(const MatcherNode *N) { - return N->getKind() == Push; + return N->getKind() == Scope; } virtual void print(raw_ostream &OS, unsigned indent = 0) const; diff --git a/utils/TableGen/DAGISelMatcherEmitter.cpp b/utils/TableGen/DAGISelMatcherEmitter.cpp index 4c5686fe22..290c8d4f8f 100644 --- a/utils/TableGen/DAGISelMatcherEmitter.cpp +++ b/utils/TableGen/DAGISelMatcherEmitter.cpp @@ -155,7 +155,7 @@ EmitMatcher(const MatcherNode *N, unsigned Indent, formatted_raw_ostream &OS) { OS.PadToColumn(Indent*2); switch (N->getKind()) { - case MatcherNode::Push: assert(0 && "Should be handled by caller"); + case MatcherNode::Scope: assert(0 && "Should be handled by caller"); case MatcherNode::RecordNode: OS << "OPC_RecordNode,"; OS.PadToColumn(CommentIndent) << "// " @@ -388,8 +388,8 @@ EmitMatcherList(const MatcherNode *N, unsigned Indent, unsigned CurrentIdx, Histogram.resize(N->getKind()+1); Histogram[N->getKind()]++; - // Push is a special case since it is binary. - if (const PushMatcherNode *PMN = dyn_cast<PushMatcherNode>(N)) { + // Scope is a special case since it is binary. + if (const ScopeMatcherNode *SMN = dyn_cast<ScopeMatcherNode>(N)) { // We need to encode the child and the offset of the failure code before // emitting either of them. Handle this by buffering the output into a // string while we get the size. @@ -398,7 +398,7 @@ EmitMatcherList(const MatcherNode *N, unsigned Indent, unsigned CurrentIdx, { raw_svector_ostream OS(TmpBuf); formatted_raw_ostream FOS(OS); - NextSize = EmitMatcherList(cast<PushMatcherNode>(N)->getNext(), + NextSize = EmitMatcherList(cast<ScopeMatcherNode>(N)->getCheck(), Indent+1, CurrentIdx+2, FOS); } @@ -408,7 +408,7 @@ EmitMatcherList(const MatcherNode *N, unsigned Indent, unsigned CurrentIdx, TmpBuf.clear(); raw_svector_ostream OS(TmpBuf); formatted_raw_ostream FOS(OS); - NextSize = EmitMatcherList(cast<PushMatcherNode>(N)->getNext(), + NextSize = EmitMatcherList(cast<ScopeMatcherNode>(N)->getCheck(), Indent+1, CurrentIdx+3, FOS); if (NextSize > 65535) { errs() << @@ -421,14 +421,14 @@ EmitMatcherList(const MatcherNode *N, unsigned Indent, unsigned CurrentIdx, OS.PadToColumn(Indent*2); if (NextSize < 256) - OS << "OPC_Push, " << NextSize << ",\n"; + OS << "OPC_Scope, " << NextSize << ",\n"; else - OS << "OPC_Push2, " << (NextSize&255) << ", " << (NextSize>>8) << ",\n"; + OS << "OPC_Scope2, " << (NextSize&255) << ", " << (NextSize>>8) <<",\n"; OS << TmpBuf.str(); Size += 2+NextSize; CurrentIdx += 2+NextSize; - N = PMN->getFailure(); + N = SMN->getNext(); continue; } @@ -514,7 +514,7 @@ void MatcherTableEmitter::EmitHistogram(formatted_raw_ostream &OS) { for (unsigned i = 0, e = Histogram.size(); i != e; ++i) { OS << " // #"; switch ((MatcherNode::KindTy)i) { - case MatcherNode::Push: OS << "OPC_Push"; break; + case MatcherNode::Scope: OS << "OPC_Scope"; break; case MatcherNode::RecordNode: OS << "OPC_RecordNode"; break; case MatcherNode::RecordChild: OS << "OPC_RecordChild"; break; case MatcherNode::RecordMemRef: OS << "OPC_RecordMemRef"; break; diff --git a/utils/TableGen/DAGISelMatcherOpt.cpp b/utils/TableGen/DAGISelMatcherOpt.cpp index 796b815a93..623d8703e4 100644 --- a/utils/TableGen/DAGISelMatcherOpt.cpp +++ b/utils/TableGen/DAGISelMatcherOpt.cpp @@ -14,14 +14,14 @@ #include "DAGISelMatcher.h" using namespace llvm; -static void ContractNodes(OwningPtr<MatcherNode> &Matcher) { +static void ContractNodes(OwningPtr<MatcherNode> &MatcherPtr) { // If we reached the end of the chain, we're done. - MatcherNode *N = Matcher.get(); + MatcherNode *N = MatcherPtr.get(); if (N == 0) return; - // If we have a push node, walk down both edges. - if (PushMatcherNode *Push = dyn_cast<PushMatcherNode>(N)) - ContractNodes(Push->getFailurePtr()); + // If we have a scope node, walk down both edges. + if (ScopeMatcherNode *Push = dyn_cast<ScopeMatcherNode>(N)) + ContractNodes(Push->getCheckPtr()); // If we found a movechild node with a node that comes in a 'foochild' form, // transform it. @@ -35,25 +35,24 @@ static void ContractNodes(OwningPtr<MatcherNode> &Matcher) { if (New) { // Insert the new node. - New->setNext(Matcher.take()); - Matcher.reset(New); + New->setNext(MatcherPtr.take()); + MatcherPtr.reset(New); // Remove the old one. MC->setNext(MC->getNext()->takeNext()); - return ContractNodes(Matcher); + return ContractNodes(MatcherPtr); } } if (MoveChildMatcherNode *MC = dyn_cast<MoveChildMatcherNode>(N)) if (MoveParentMatcherNode *MP = dyn_cast<MoveParentMatcherNode>(MC->getNext())) { - Matcher.reset(MP->takeNext()); - return ContractNodes(Matcher); + MatcherPtr.reset(MP->takeNext()); + return ContractNodes(MatcherPtr); } ContractNodes(N->getNextPtr()); } - MatcherNode *llvm::OptimizeMatcher(MatcherNode *Matcher) { OwningPtr<MatcherNode> MatcherPtr(Matcher); ContractNodes(MatcherPtr); |