Change MCOperand to use Create style instead of Make style for constructing
[oota-llvm.git] / utils / TableGen / DAGISelEmitter.h
index 0045a3ab98c1fa09cb16e6a4cdc854459c4e5b36..d5b889b0551019d33ff7205da012cbc2c6f0efd7 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,30 @@ namespace llvm {
 ///
 class DAGISelEmitter : public TableGenBackend {
   RecordKeeper &Records;
-  CodegenDAGPatterns CGP;
+  CodeGenDAGPatterns CGP;
 public:
-  DAGISelEmitter(RecordKeeper &R) : Records(R), CGP(R) {}
+  explicit DAGISelEmitter(RecordKeeper &R) : Records(R), CGP(R) {}
 
   // run - Output the isel, returning true on failure.
-  void run(std::ostream &OS);
+  void run(raw_ostream &OS);
   
   
 private:
-  void EmitNodeTransforms(std::ostream &OS);
-  void EmitPredicateFunctions(std::ostream &OS);
+  void EmitNodeTransforms(raw_ostream &OS);
+  void EmitPredicateFunctions(raw_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);
+                    unsigned Indent, raw_ostream &OS);
   
-  void EmitInstructionSelector(std::ostream &OS);
+  void EmitInstructionSelector(raw_ostream &OS);
 };
 
 } // End llvm namespace