rename a couple of methods, add structure for pattern parsing
authorChris Lattner <sabre@nondot.org>
Thu, 15 Sep 2005 02:38:02 +0000 (02:38 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 15 Sep 2005 02:38:02 +0000 (02:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23364 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/DAGISelEmitter.cpp
utils/TableGen/DAGISelEmitter.h

index c61ba03f5c695bc2e7c5f83264c2881d4ee524b4..8d0f65fb5308f2cdb6f719bff08cf3a07617ef99 100644 (file)
@@ -527,14 +527,14 @@ void DAGISelEmitter::ParseNodeTransforms(std::ostream &OS) {
 
 
 
-/// ParseAndResolvePatternFragments - Parse all of the PatFrag definitions in
-/// the .td file, building up the PatternFragments map.  After we've collected
-/// them all, inline fragments together as necessary, so that there are no
-/// references left inside a pattern fragment to a pattern fragment.
+/// ParsePatternFragments - Parse all of the PatFrag definitions in the .td
+/// file, building up the PatternFragments map.  After we've collected them all,
+/// inline fragments together as necessary, so that there are no references left
+/// inside a pattern fragment to a pattern fragment.
 ///
 /// This also emits all of the predicate functions to the output file.
 ///
-void DAGISelEmitter::ParseAndResolvePatternFragments(std::ostream &OS) {
+void DAGISelEmitter::ParsePatternFragments(std::ostream &OS) {
   std::vector<Record*> Fragments = Records.getAllDerivedDefinitions("PatFrag");
   
   // First step, parse all of the fragments and emit predicate functions.
@@ -739,10 +739,10 @@ FindPatternInputsAndOutputs(TreePattern *I, TreePatternNode *Pat,
 }
 
 
-/// ParseAndResolveInstructions - Parse all of the instructions, inlining and
-/// resolving any fragments involved.  This populates the Instructions list with
-/// fully resolved instructions.
-void DAGISelEmitter::ParseAndResolveInstructions() {
+/// ParseInstructions - Parse all of the instructions, inlining and resolving
+/// any fragments involved.  This populates the Instructions list with fully
+/// resolved instructions.
+void DAGISelEmitter::ParseInstructions() {
   std::vector<Record*> Instrs = Records.getAllDerivedDefinitions("Instruction");
   
   for (unsigned i = 0, e = Instrs.size(); i != e; ++i) {
@@ -888,12 +888,22 @@ void DAGISelEmitter::ParseAndResolveInstructions() {
     TreePatternNode *SrcPattern = Pattern->getChild(1)->clone();
     TreePatternNode *DstPattern = Instructions[i].getResultPattern();
     PatternsToMatch.push_back(std::make_pair(SrcPattern, DstPattern));
-    DEBUG(std::cerr << "PATTERN TO MATCH: "; SrcPattern->dump();
-          std::cerr << "\nRESULT DAG      : ";
-          DstPattern->dump(); std::cerr << "\n");
   }
 }
 
+void DAGISelEmitter::ParsePatterns() {
+
+
+
+
+  DEBUG(std::cerr << "\n\nPARSED PATTERNS TO MATCH:\n\n";
+        for (unsigned i = 0, e = PatternsToMatch.size(); i != e; ++i) {
+          std::cerr << "PATTERN: ";  PatternsToMatch[i].first->dump();
+          std::cerr << "\nRESULT:  ";PatternsToMatch[i].second->dump();
+          std::cerr << "\n";
+        });
+}
+
 void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
   // Emit boilerplate.
   OS << "// The main instruction selector code.\n"
@@ -929,9 +939,10 @@ void DAGISelEmitter::run(std::ostream &OS) {
      << "methods.\n\n";
   ParseNodeInfo();
   ParseNodeTransforms(OS);
-  ParseAndResolvePatternFragments(OS);
-  ParseAndResolveInstructions();
-  
+  ParsePatternFragments(OS);
+  ParseInstructions();
+  ParsePatterns();
+
   // TODO: convert some instructions to expanders if needed or something.
   
   EmitInstructionSelector(OS);  
index d1381e65eef8a55f51e16ac7317fdb98fe02247d..280cab35560af604372a8011bfacdadd53f81c62 100644 (file)
@@ -333,8 +333,9 @@ public:
 private:
   void ParseNodeInfo();
   void ParseNodeTransforms(std::ostream &OS);
-  void ParseAndResolvePatternFragments(std::ostream &OS);
-  void ParseAndResolveInstructions();
+  void ParsePatternFragments(std::ostream &OS);
+  void ParseInstructions();
+  void ParsePatterns();
   void FindPatternInputsAndOutputs(TreePattern *I, TreePatternNode *Pat,
                                    std::map<std::string,
                                             TreePatternNode*> &InstInputs,