Get rid of one more non-DebugLoc getNode and
[oota-llvm.git] / utils / TableGen / DAGISelEmitter.h
index 0fdbbafccb64bcbd544cedcc6697d2228a20b825..2f626f6b866bd446e64fc6add07bab70dce7452f 100644 (file)
@@ -14,6 +14,7 @@
 #ifndef DAGISEL_EMITTER_H
 #define DAGISEL_EMITTER_H
 
+#include "TableGenBackend.h"
 #include "CodeGenDAGPatterns.h"
 #include <set>
 
@@ -24,22 +25,25 @@ 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,
                               std::vector<std::string> &TargetOpcodes,
-                              std::vector<std::string> &TargetVTs);
+                              std::vector<std::string> &TargetVTs,
+                              bool &OutputIsVariadic,
+                              unsigned &NumInputRootOps);
   void EmitPatterns(std::vector<std::pair<const PatternToMatch*, 
                   std::vector<std::pair<unsigned, std::string> > > > &Patterns, 
                     unsigned Indent, std::ostream &OS);