Remove the Clang tblgen backends from LLVM.
[oota-llvm.git] / utils / TableGen / CodeEmitterGen.h
index f0b3229c0411a4b8da8791a7202d426e63f04922..7f6ee2a1b40f1bad639f232a74fbe9e1236ce503 100644 (file)
@@ -14,8 +14,7 @@
 #ifndef CODEMITTERGEN_H
 #define CODEMITTERGEN_H
 
-#include "TableGenBackend.h"
-#include <map>
+#include "llvm/TableGen/TableGenBackend.h"
 #include <vector>
 #include <string>
 
@@ -23,6 +22,7 @@ namespace llvm {
 
 class RecordVal;
 class BitsInit;
+class CodeGenTarget;
 
 class CodeEmitterGen : public TableGenBackend {
   RecordKeeper &Records;
@@ -36,6 +36,12 @@ private:
   void emitGetValueBit(raw_ostream &o, const std::string &Namespace);
   void reverseBits(std::vector<Record*> &Insts);
   int getVariableBit(const std::string &VarName, BitsInit *BI, int bit);
+  std::string getInstructionCase(Record *R, CodeGenTarget &Target);
+  void
+  AddCodeToMergeInOperand(Record *R, BitsInit *BI, const std::string &VarName,
+                          unsigned &NumberedOp,
+                          std::string &Case, CodeGenTarget &Target);
+    
 };
 
 } // End llvm namespace