aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/TableGen
diff options
context:
space:
mode:
authorShao-Ce SUN <ssc@lanxincomputing.com>2023-09-26 13:40:56 +0800
committerGitHub <noreply@github.com>2023-09-26 13:40:56 +0800
commitb0e28eb832710964067a17d845de15ada2da2b9c (patch)
tree646985f0db68d1fdb30611e553e368f487e51a49 /llvm/lib/TableGen
parentf74e274af70d88a81a9f313864ea486a10a12d13 (diff)
downloadllvm-b0e28eb832710964067a17d845de15ada2da2b9c.zip
llvm-b0e28eb832710964067a17d845de15ada2da2b9c.tar.gz
llvm-b0e28eb832710964067a17d845de15ada2da2b9c.tar.bz2
[llvm][tblgen] Add `Source Filename` for `emitSourceFileHeader` (#65744)
I think this is very helpful for reading generated `.inc` files.
Diffstat (limited to 'llvm/lib/TableGen')
-rw-r--r--llvm/lib/TableGen/TableGenBackend.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/llvm/lib/TableGen/TableGenBackend.cpp b/llvm/lib/TableGen/TableGenBackend.cpp
index 705c3a1..035abe9 100644
--- a/llvm/lib/TableGen/TableGenBackend.cpp
+++ b/llvm/lib/TableGen/TableGenBackend.cpp
@@ -12,6 +12,7 @@
#include "llvm/TableGen/TableGenBackend.h"
#include "llvm/ADT/Twine.h"
+#include "llvm/Support/Path.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
@@ -40,7 +41,8 @@ static void printLine(raw_ostream &OS, const Twine &Prefix, char Fill,
OS << Suffix << '\n';
}
-void llvm::emitSourceFileHeader(StringRef Desc, raw_ostream &OS) {
+void llvm::emitSourceFileHeader(StringRef Desc, raw_ostream &OS,
+ const RecordKeeper &Record) {
printLine(OS, "/*===- TableGen'erated file ", '-', "*- C++ -*-===*\\");
StringRef Prefix("|* ");
StringRef Suffix(" *|");
@@ -56,6 +58,12 @@ void llvm::emitSourceFileHeader(StringRef Desc, raw_ostream &OS) {
printLine(OS, Prefix, ' ', Suffix);
printLine(OS, Prefix + "Automatically generated file, do not edit!", ' ',
Suffix);
+
+ // Print the filename of source file
+ if (!Record.getInputFilename().empty())
+ printLine(
+ OS, Prefix + "From: " + sys::path::filename(Record.getInputFilename()),
+ ' ', Suffix);
printLine(OS, Prefix, ' ', Suffix);
printLine(OS, "\\*===", '-', "===*/");
OS << '\n';