Rewrite tblgen handling of subtarget features so
[oota-llvm.git] / utils / TableGen / DAGISelEmitter.h
index 278af7812d7b58700387358f6fa20abf3a921c61..534326e926173aa76aeb243ca8f0b43f07344280 100644 (file)
@@ -24,15 +24,18 @@ namespace llvm {
 ///
 class DAGISelEmitter : public TableGenBackend {
   RecordKeeper &Records;
-  CodegenDAGPatterns *CGP; 
+  CodeGenDAGPatterns CGP;
 public:
-  DAGISelEmitter(RecordKeeper &R) : Records(R) {}
+  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,
@@ -41,6 +44,7 @@ private:
   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);
 };