LLVM  14.0.0git
TableGenBackendSkeleton.cpp
Go to the documentation of this file.
1 //===- SkeletonEmitter.cpp - Skeleton TableGen backend -*- C++ -*-===//
2 //
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
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This Tablegen backend emits ...
10 //
11 //===----------------------------------------------------------------------===//
12 
13 #include "llvm/ADT/ArrayRef.h"
14 #include "llvm/ADT/DenseMap.h"
15 #include "llvm/ADT/StringExtras.h"
16 #include "llvm/Support/Format.h"
18 #include "llvm/Support/SourceMgr.h"
19 #include "llvm/TableGen/Error.h"
20 #include "llvm/TableGen/Record.h"
22 #include <algorithm>
23 #include <set>
24 #include <string>
25 #include <vector>
26 
27 #define DEBUG_TYPE "skeleton-emitter"
28 
29 using namespace llvm;
30 
31 namespace {
32 
33 // Any helper data structures can be defined here. Some backends use
34 // structs to collect information from the records.
35 
36 class SkeletonEmitter {
37 private:
38  RecordKeeper &Records;
39 
40 public:
41  SkeletonEmitter(RecordKeeper &RK) : Records(RK) {}
42 
43  void run(raw_ostream &OS);
44 }; // emitter class
45 
46 } // anonymous namespace
47 
48 void SkeletonEmitter::run(raw_ostream &OS) {
49  emitSourceFileHeader("Skeleton data structures", OS);
50 
51  (void)Records; // To suppress unused variable warning; remove on use.
52 }
53 
54 namespace llvm {
55 
56 // The only thing that should be in the llvm namespace is the
57 // emitter entry point function.
58 
60  // Instantiate the emitter class and invoke run().
61  SkeletonEmitter(RK).run(OS);
62 }
63 
64 } // namespace llvm
MemoryBuffer.h
llvm
---------------------— PointerInfo ------------------------------------—
Definition: AllocatorList.h:23
llvm::RecordKeeper
Definition: Record.h:1771
DenseMap.h
Format.h
TableGenBackend.h
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:53
SourceMgr.h
Error.h
StringExtras.h
ArrayRef.h
llvm::EmitSkeleton
void EmitSkeleton(RecordKeeper &RK, raw_ostream &OS)
Definition: TableGenBackendSkeleton.cpp:59
llvm::emitSourceFileHeader
void emitSourceFileHeader(StringRef Desc, raw_ostream &OS)
emitSourceFileHeader - Output an LLVM style file header to the specified raw_ostream.
Definition: TableGenBackend.cpp:34
Record.h