Path: blob/main/contrib/llvm-project/llvm/lib/TableGen/TableGenBackendSkeleton.cpp
35234 views
//===- SkeletonEmitter.cpp - Skeleton TableGen backend -*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//7//8// This Tablegen backend emits ...9//10//===----------------------------------------------------------------------===//1112#include "llvm/ADT/StringRef.h"13#include "llvm/TableGen/TableGenBackend.h"1415#define DEBUG_TYPE "skeleton-emitter"1617namespace llvm {18class RecordKeeper;19class raw_ostream;20} // namespace llvm2122using namespace llvm;2324namespace {2526// Any helper data structures can be defined here. Some backends use27// structs to collect information from the records.2829class SkeletonEmitter {30private:31RecordKeeper &Records;3233public:34SkeletonEmitter(RecordKeeper &RK) : Records(RK) {}3536void run(raw_ostream &OS);37}; // emitter class3839} // anonymous namespace4041void SkeletonEmitter::run(raw_ostream &OS) {42emitSourceFileHeader("Skeleton data structures", OS);4344(void)Records; // To suppress unused variable warning; remove on use.45}4647// Choose either option A or B.4849//===----------------------------------------------------------------------===//50// Option A: Register the backed as class <SkeletonEmitter>51static TableGen::Emitter::OptClass<SkeletonEmitter>52X("gen-skeleton-class", "Generate example skeleton class");5354//===----------------------------------------------------------------------===//55// Option B: Register "EmitSkeleton" directly56// The emitter entry may be private scope.57static void EmitSkeleton(RecordKeeper &RK, raw_ostream &OS) {58// Instantiate the emitter class and invoke run().59SkeletonEmitter(RK).run(OS);60}6162static TableGen::Emitter::Opt Y("gen-skeleton-entry", EmitSkeleton,63"Generate example skeleton entry");646566