1 //===- SubtargetEmitter.h - Generate subtarget enumerations -----*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file was developed by James M. Laskey and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This tablegen backend emits subtarget enumerations.
12 //===----------------------------------------------------------------------===//
14 #ifndef SUBTARGET_EMITTER_H
15 #define SUBTARGET_EMITTER_H
17 #include "TableGenBackend.h"
21 class SubtargetEmitter : public TableGenBackend {
22 RecordKeeper &Records;
24 void FeatureEnumeration(std::ostream &OS);
25 void FeatureKeyValues(std::ostream &OS);
26 void CPUKeyValues(std::ostream &OS);
29 SubtargetEmitter(RecordKeeper &R) : Records(R) {}
31 // run - Output the subtarget enumerations, returning true on failure.
32 void run(std::ostream &o);
37 } // End llvm namespace