//===- SkeletonEmitter.cpp - Skeleton TableGen backend -*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This Tablegen backend emits ... // //===----------------------------------------------------------------------===// #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/StringExtras.h" #include "llvm/Support/Format.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/SourceMgr.h" #include "llvm/TableGen/Error.h" #include "llvm/TableGen/Record.h" #include "llvm/TableGen/TableGenBackend.h" #include #include #include #include #define DEBUG_TYPE "skeleton-emitter" using namespace llvm; namespace { // Any helper data structures can be defined here. Some backends use // structs to collect information from the records. class SkeletonEmitter { private: RecordKeeper &Records; public: SkeletonEmitter(RecordKeeper &RK) : Records(RK) {} void run(raw_ostream &OS); }; // emitter class } // anonymous namespace void SkeletonEmitter::run(raw_ostream &OS) { emitSourceFileHeader("Skeleton data structures", OS); (void)Records; // To suppress unused variable warning; remove on use. } namespace llvm { // The only thing that should be in the llvm namespace is the // emitter entry point function. void EmitSkeleton(RecordKeeper &RK, raw_ostream &OS) { // Instantiate the emitter class and invoke run(). SkeletonEmitter(RK).run(OS); } } // namespace llvm