diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2021-02-16 20:13:02 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2021-02-16 20:13:02 +0000 |
| commit | b60736ec1405bb0a8dd40989f67ef4c93da068ab (patch) | |
| tree | 5c43fbb7c9fc45f0f87e0e6795a86267dbd12f9d /llvm/lib/TableGen/TableGenBackendSkeleton.cpp | |
| parent | cfca06d7963fa0909f90483b42a6d7d194d01e08 (diff) | |
Diffstat (limited to 'llvm/lib/TableGen/TableGenBackendSkeleton.cpp')
| -rw-r--r-- | llvm/lib/TableGen/TableGenBackendSkeleton.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/llvm/lib/TableGen/TableGenBackendSkeleton.cpp b/llvm/lib/TableGen/TableGenBackendSkeleton.cpp new file mode 100644 index 000000000000..4ce88e003e65 --- /dev/null +++ b/llvm/lib/TableGen/TableGenBackendSkeleton.cpp @@ -0,0 +1,64 @@ +//===- 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 <algorithm> +#include <set> +#include <string> +#include <vector> + +#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 |
