blob: 19ca5452f5516e64f2d71eca1544f25651df747c [file] [log] [blame]
Chris Lattnerf5bd1b72003-10-05 19:27:59 +00001//===- CodeEmitterGen.h - Code Emitter Generator ----------------*- C++ -*-===//
John Criswelld3032032003-10-20 20:20:30 +00002//
3// The LLVM Compiler Infrastructure
4//
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.
7//
8//===----------------------------------------------------------------------===//
Chris Lattnerf5bd1b72003-10-05 19:27:59 +00009//
10// FIXME: document
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef CODEMITTERGEN_H
15#define CODEMITTERGEN_H
16
17#include "TableGenBackend.h"
18
Brian Gaeke960707c2003-11-11 22:41:34 +000019namespace llvm {
20
Chris Lattnerf5bd1b72003-10-05 19:27:59 +000021class CodeEmitterGen : public TableGenBackend {
22 RecordKeeper &Records;
23public:
24 CodeEmitterGen(RecordKeeper &R) : Records(R) {}
25
26 // run - Output the code emitter
27 void run(std::ostream &o);
28private:
29 void emitMachineOpEmitter(std::ostream &o, const std::string &Namespace);
30 void emitGetValueBit(std::ostream &o, const std::string &Namespace);
31};
32
Brian Gaeke960707c2003-11-11 22:41:34 +000033} // End llvm namespace
34
Chris Lattnerf5bd1b72003-10-05 19:27:59 +000035#endif