diff options
author | Shao-Ce SUN <ssc@lanxincomputing.com> | 2023-09-26 13:40:56 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-26 13:40:56 +0800 |
commit | b0e28eb832710964067a17d845de15ada2da2b9c (patch) | |
tree | 646985f0db68d1fdb30611e553e368f487e51a49 /llvm/lib/TableGen | |
parent | f74e274af70d88a81a9f313864ea486a10a12d13 (diff) | |
download | llvm-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.cpp | 10 |
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'; |