llvm-project/llvm/lib/TableGen/TableGenBackendSkeleton.cpp
serge-sans-paille 92f49b89e2 Cleanup include dependencies for LLVMTableGen
Based on the output of include-what-you-use. No other library seems affected by
the new forward declaration.

$ clang++ -E  -Iinclude -I../llvm/include ../llvm/lib/TableGen/*.cpp -std=c++14 -fno-rtti -fno-exceptions | wc -l
before: 795231
after: 750654

Related Discourse thread: https://llvm.discourse.group/t/include-what-you-use-include-cleanup
Differential Revision: https://reviews.llvm.org/D118374
2022-01-28 11:50:49 +01:00

60 lines
1.5 KiB
C++

//===- 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/StringRef.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/TableGen/TableGenBackend.h"
#define DEBUG_TYPE "skeleton-emitter"
namespace llvm {
class RecordKeeper;
class raw_ostream;
} // namespace llvm
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