[llvm] [TableGen] Strip directories from filename prefixes. (PR #168355)
Ivan Kosarev via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 17 09:48:00 PST 2025
https://github.com/kosarev updated https://github.com/llvm/llvm-project/pull/168355
>From ab305c0b8dae55c473443c123ce161845c5c48a8 Mon Sep 17 00:00:00 2001
From: Ivan Kosarev <ivan.kosarev at amd.com>
Date: Mon, 17 Nov 2025 11:35:13 +0000
Subject: [PATCH] [TableGen] Strip directories from filename prefixes.
Fixes https://github.com/llvm/llvm-project/pull/167700 to support
builds where TableGen's output file is specified as full path
rather than just filename.
---
llvm/lib/TableGen/Main.cpp | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/llvm/lib/TableGen/Main.cpp b/llvm/lib/TableGen/Main.cpp
index c3869c3fb9a5a..3330b70cdc2e1 100644
--- a/llvm/lib/TableGen/Main.cpp
+++ b/llvm/lib/TableGen/Main.cpp
@@ -167,12 +167,11 @@ int llvm::TableGenMain(const char *argv0,
// Write output to memory.
Timer.startBackendTimer("Backend overall");
- SmallString<128> FilenamePrefix(OutputFilename);
- sys::path::replace_extension(FilenamePrefix, "");
TableGenOutputFiles OutFiles;
unsigned status = 0;
// ApplyCallback will return true if it did not apply any callback. In that
// case, attempt to apply the MainFn.
+ StringRef FilenamePrefix(sys::path::stem(OutputFilename));
if (TableGen::Emitter::ApplyCallback(Records, OutFiles, FilenamePrefix))
status = MainFn ? MainFn(OutFiles, Records) : 1;
Timer.stopBackendTimer();
@@ -195,7 +194,7 @@ int llvm::TableGenMain(const char *argv0,
SmallString<128> Filename(OutputFilename);
// TODO: Format using the split-file convention when writing to stdout?
if (Filename != "-") {
- Filename = FilenamePrefix;
+ sys::path::replace_extension(Filename, "");
Filename.append(Suffix);
}
if (int Ret = WriteOutput(Parser, argv0, Filename, Content))
More information about the llvm-commits
mailing list