aboutsummaryrefslogtreecommitdiff
path: root/utils/TableGen
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-02-25 01:56:48 +0000
committerChris Lattner <sabre@nondot.org>2010-02-25 01:56:48 +0000
commit60df53e30a7e39c884f4ca4eb03346bea5825109 (patch)
tree8e8d8be88cebe5522a27c7768127b9c338af7837 /utils/TableGen
parent3ce2b097973e4b1a553373471cf2a5d9805903c5 (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.cpp2
-rw-r--r--utils/TableGen/DAGISelMatcher.cpp8
-rw-r--r--utils/TableGen/DAGISelMatcher.h26
-rw-r--r--utils/TableGen/DAGISelMatcherEmitter.cpp18
-rw-r--r--utils/TableGen/DAGISelMatcherOpt.cpp21
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);