1 //===- SkeletonEmitter.cpp - Skeleton TableGen backend -*- C++ -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // This Tablegen backend emits ...
11 //===----------------------------------------------------------------------===//
13 #include "llvm/ADT/ArrayRef.h"
14 #include "llvm/ADT/DenseMap.h"
15 #include "llvm/ADT/StringExtras.h"
16 #include "llvm/Support/Format.h"
17 #include "llvm/Support/MemoryBuffer.h"
18 #include "llvm/Support/SourceMgr.h"
19 #include "llvm/TableGen/Error.h"
20 #include "llvm/TableGen/Record.h"
21 #include "llvm/TableGen/TableGenBackend.h"
27 #define DEBUG_TYPE "skeleton-emitter"
33 // Any helper data structures can be defined here. Some backends use
34 // structs to collect information from the records.
36 class SkeletonEmitter
{
38 RecordKeeper
&Records
;
41 SkeletonEmitter(RecordKeeper
&RK
) : Records(RK
) {}
43 void run(raw_ostream
&OS
);
46 } // anonymous namespace
48 void SkeletonEmitter::run(raw_ostream
&OS
) {
49 emitSourceFileHeader("Skeleton data structures", OS
);
51 (void)Records
; // To suppress unused variable warning; remove on use.
56 // The only thing that should be in the llvm namespace is the
57 // emitter entry point function.
59 void EmitSkeleton(RecordKeeper
&RK
, raw_ostream
&OS
) {
60 // Instantiate the emitter class and invoke run().
61 SkeletonEmitter(RK
).run(OS
);