a0bfab3e75cfe19fbb494fde306c7591f08fe349
[oota-llvm.git] / utils / TableGen / CallingConvEmitter.h
1 //===- CallingConvEmitter.h - Generate calling conventions ------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file was developed by Chris Lattner and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This tablegen backend is responsible for emitting descriptions of the calling
11 // conventions supported by this target.
12 //
13 //===----------------------------------------------------------------------===//
14
15 #ifndef CALLINGCONV_EMITTER_H
16 #define CALLINGCONV_EMITTER_H
17
18 #include "TableGenBackend.h"
19 #include <map>
20 #include <vector>
21 #include <cassert>
22
23 namespace llvm {
24   class CallingConvEmitter : public TableGenBackend {
25     RecordKeeper &Records;
26   public:
27     CallingConvEmitter(RecordKeeper &R) : Records(R) {}
28
29     // run - Output the asmwriter, returning true on failure.
30     void run(std::ostream &o);
31     
32   private:
33     void EmitCallingConv(Record *CC, std::ostream &O);
34     void EmitAction(Record *Action, unsigned Indent, std::ostream &O);
35     unsigned Counter;
36   };
37 }
38 #endif