rename PushMatcherNode -> ScopeMatcherNode to more accurately
authorChris Lattner <sabre@nondot.org>
Thu, 25 Feb 2010 01:56:48 +0000 (01:56 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 25 Feb 2010 01:56:48 +0000 (01:56 +0000)
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

include/llvm/CodeGen/DAGISelHeader.h
utils/TableGen/DAGISelEmitter.cpp
utils/TableGen/DAGISelMatcher.cpp
utils/TableGen/DAGISelMatcher.h
utils/TableGen/DAGISelMatcherEmitter.cpp
utils/TableGen/DAGISelMatcherOpt.cpp

index d208acdc745e0434ba79f299092056d730374339..8591a748cc799b9ef2dfc97cd4b9f49d1be669fd 100644 (file)
@@ -219,7 +219,7 @@ GetVBR(unsigned Val, const unsigned char *MatcherTable, unsigned &Idx) {
 
 
 enum BuiltinOpcodes {
-  OPC_Push, OPC_Push2,
+  OPC_Scope, OPC_Scope2,
   OPC_RecordNode,
   OPC_RecordChild0, OPC_RecordChild1, OPC_RecordChild2, OPC_RecordChild3, 
   OPC_RecordChild4, OPC_RecordChild5, OPC_RecordChild6, OPC_RecordChild7,
@@ -372,7 +372,7 @@ SDNode *SelectCodeCommon(SDNode *NodeToMatch, const unsigned char *MatcherTable,
     assert(MatcherIndex < TableSize && "Invalid index");
     BuiltinOpcodes Opcode = (BuiltinOpcodes)MatcherTable[MatcherIndex++];
     switch (Opcode) {
-    case OPC_Push: {
+    case OPC_Scope: {
       unsigned NumToSkip = MatcherTable[MatcherIndex++];
       MatchScope NewEntry;
       NewEntry.FailIndex = MatcherIndex+NumToSkip;
@@ -386,7 +386,7 @@ SDNode *SelectCodeCommon(SDNode *NodeToMatch, const unsigned char *MatcherTable,
       MatchScopes.push_back(NewEntry);
       continue;
     }
-    case OPC_Push2: {
+    case OPC_Scope2: {
       unsigned NumToSkip = GetInt2(MatcherTable, MatcherIndex);
       MatchScope NewEntry;
       NewEntry.FailIndex = MatcherIndex+NumToSkip;
index 0a612516211fcbc55360f001609f1c934427645d..4aa888b4083376c0969f97fd3dc4c1cc95e3bd47 100644 (file)
@@ -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);
index 0b0a1be0d62bc4477fb2e19b08419fa8ec749063..6588bc00e6ed469bd46258e814f99398735006f2 100644 (file)
@@ -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 {
index 3505bb82b6be40f13ee5d2621bea6602cf440365..757bf606588a2fd4c46a8060ef830297ce69ff53 100644 (file)
@@ -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;
index 4c5686fe22424423776da8cde2bb692a77755475..290c8d4f8f88ba4ade7738141d13a7d72c0bb894 100644 (file)
@@ -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;
index 796b815a93b5b09b190d2b93ef852445369d2b3c..623d8703e44fd285934af8d582bfedd658cb41a1 100644 (file)
 #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);