1 //===- CodeEmitterGen.h - Code Emitter Generator ----------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
12 //===----------------------------------------------------------------------===//
14 #ifndef CODEMITTERGEN_H
15 #define CODEMITTERGEN_H
17 #include "TableGenBackend.h"
25 class CodeEmitterGen : public TableGenBackend {
26 RecordKeeper &Records;
28 CodeEmitterGen(RecordKeeper &R) : Records(R) {}
30 // run - Output the code emitter
31 void run(std::ostream &o);
33 void emitMachineOpEmitter(std::ostream &o, const std::string &Namespace);
34 void emitGetValueBit(std::ostream &o, const std::string &Namespace);
35 void emitInstrOpBits(std::ostream &o,
36 const std::vector<RecordVal> &Vals,
37 std::map<std::string, unsigned> &OpOrder,
38 std::map<std::string, bool> &OpContinuous);
41 } // End llvm namespace