simplify code that creates SubtargetFeatureInfo, ensuring that features
[oota-llvm.git] / utils / TableGen / DAGISelEmitter.h
index 804ebdb21bc2e563563f926ebe78048d5d13ae50..2117e65455ac442f58dfb7c75c63c29515927d2b 100644 (file)
@@ -14,6 +14,7 @@
 #ifndef DAGISEL_EMITTER_H
 #define DAGISEL_EMITTER_H
 
+#include "TableGenBackend.h"
 #include "CodeGenDAGPatterns.h"
 #include <set>
 
@@ -24,28 +25,12 @@ namespace llvm {
 ///
 class DAGISelEmitter : public TableGenBackend {
   RecordKeeper &Records;
-  CodegenDAGPatterns *CGP; 
+  CodeGenDAGPatterns CGP;
 public:
-  DAGISelEmitter(RecordKeeper &R) : Records(R) {}
+  explicit DAGISelEmitter(RecordKeeper &R) : Records(R), CGP(R) {}
 
   // run - Output the isel, returning true on failure.
-  void run(std::ostream &OS);
-  
-  
-private:
-  void EmitNodeTransforms(std::ostream &OS);
-  void EmitPredicateFunctions(std::ostream &OS);
-  
-  void GenerateCodeForPattern(const PatternToMatch &Pattern,
-                  std::vector<std::pair<unsigned, std::string> > &GeneratedCode,
-                              std::set<std::string> &GeneratedDecl,
-                              std::vector<std::string> &TargetOpcodes,
-                              std::vector<std::string> &TargetVTs);
-  void EmitPatterns(std::vector<std::pair<const PatternToMatch*, 
-                  std::vector<std::pair<unsigned, std::string> > > > &Patterns, 
-                    unsigned Indent, std::ostream &OS);
-  
-  void EmitInstructionSelector(std::ostream &OS);
+  void run(raw_ostream &OS);
 };
 
 } // End llvm namespace