Add the select optimization recently added to instcombine to constant folding.
[llvm.git] / utils / TableGen / ARMDecoderEmitter.h
blob1faeb91fae8a80c91971ed58788eaeee1edda83f
1 //===------------ ARMDecoderEmitter.h - Decoder Generator -------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file is part of the ARM Disassembler.
11 // It contains the tablegen backend declaration ARMDecoderEmitter.
13 //===----------------------------------------------------------------------===//
15 #ifndef ARMDECODEREMITTER_H
16 #define ARMDECODEREMITTER_H
18 #include "TableGenBackend.h"
20 #include "llvm/Support/DataTypes.h"
22 namespace llvm {
24 class ARMDecoderEmitter : public TableGenBackend {
25 RecordKeeper &Records;
26 public:
27 ARMDecoderEmitter(RecordKeeper &R) : Records(R) {
28 initBackend();
31 ~ARMDecoderEmitter() {
32 shutdownBackend();
35 // run - Output the code emitter
36 void run(raw_ostream &o);
38 private:
39 // Helper class for ARMDecoderEmitter.
40 class ARMDEBackend;
42 ARMDEBackend *Backend;
44 void initBackend();
45 void shutdownBackend();
48 } // end llvm namespace
50 #endif