[llvm] [TableGen][NFCI] Change TableGenMain() to take function_ref. (PR #167888)
Ivan Kosarev via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 18 03:55:54 PST 2025
https://github.com/kosarev updated https://github.com/llvm/llvm-project/pull/167888
>From d01926a030b4d1b3378053a8432952ebc5f69698 Mon Sep 17 00:00:00 2001
From: Ivan Kosarev <ivan.kosarev at amd.com>
Date: Thu, 13 Nov 2025 12:10:51 +0000
Subject: [PATCH] [TableGen][NFCI] Change TableGenMain() to take function_ref.
It was switched from a function pointer to std::function in
TableGen: Make 2nd arg MainFn of TableGenMain(argv0, MainFn) optional.
f675ec6165ab6add5e57cd43a2e9fa1a9bc21d81
but there's no mention of any particular reason for that.
---
llvm/include/llvm/TableGen/Main.h | 14 ++++++--------
llvm/lib/TableGen/Main.cpp | 6 ++----
llvm/utils/TableGen/Basic/TableGen.cpp | 2 +-
3 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/llvm/include/llvm/TableGen/Main.h b/llvm/include/llvm/TableGen/Main.h
index bafce3a463acc..daede9f5a46f0 100644
--- a/llvm/include/llvm/TableGen/Main.h
+++ b/llvm/include/llvm/TableGen/Main.h
@@ -14,7 +14,6 @@
#define LLVM_TABLEGEN_MAIN_H
#include "llvm/Support/CommandLine.h"
-#include <functional>
#include <map>
namespace llvm {
@@ -30,18 +29,17 @@ struct TableGenOutputFiles {
};
/// Returns true on error, false otherwise.
-using TableGenMainFn = bool(raw_ostream &OS, const RecordKeeper &Records);
+using TableGenMainFn =
+ function_ref<bool(raw_ostream &OS, const RecordKeeper &Records)>;
/// Perform the action using Records, and store output in OutFiles.
/// Returns true on error, false otherwise.
-using MultiFileTableGenMainFn = bool(TableGenOutputFiles &OutFiles,
- const RecordKeeper &Records);
+using MultiFileTableGenMainFn = function_ref<bool(TableGenOutputFiles &OutFiles,
+ const RecordKeeper &Records)>;
-int TableGenMain(const char *argv0,
- std::function<TableGenMainFn> MainFn = nullptr);
+int TableGenMain(const char *argv0, TableGenMainFn MainFn = nullptr);
-int TableGenMain(const char *argv0,
- std::function<MultiFileTableGenMainFn> MainFn = nullptr);
+int TableGenMain(const char *argv0, MultiFileTableGenMainFn MainFn = nullptr);
/// Controls emitting large character arrays as strings or character arrays.
/// Typically set to false when building with MSVC.
diff --git a/llvm/lib/TableGen/Main.cpp b/llvm/lib/TableGen/Main.cpp
index 3330b70cdc2e1..939e9c6bf5d2f 100644
--- a/llvm/lib/TableGen/Main.cpp
+++ b/llvm/lib/TableGen/Main.cpp
@@ -127,8 +127,7 @@ static int WriteOutput(const TGParser &Parser, const char *argv0,
return 0;
}
-int llvm::TableGenMain(const char *argv0,
- std::function<MultiFileTableGenMainFn> MainFn) {
+int llvm::TableGenMain(const char *argv0, MultiFileTableGenMainFn MainFn) {
RecordKeeper Records;
TGTimer &Timer = Records.getTimer();
@@ -209,8 +208,7 @@ int llvm::TableGenMain(const char *argv0,
return 0;
}
-int llvm::TableGenMain(const char *argv0,
- std::function<TableGenMainFn> MainFn) {
+int llvm::TableGenMain(const char *argv0, TableGenMainFn MainFn) {
return TableGenMain(argv0, [&MainFn](TableGenOutputFiles &OutFiles,
const RecordKeeper &Records) {
std::string S;
diff --git a/llvm/utils/TableGen/Basic/TableGen.cpp b/llvm/utils/TableGen/Basic/TableGen.cpp
index b79ae93dab4f7..a655cbbc16096 100644
--- a/llvm/utils/TableGen/Basic/TableGen.cpp
+++ b/llvm/utils/TableGen/Basic/TableGen.cpp
@@ -73,7 +73,7 @@ int tblgen_main(int argc, char **argv) {
InitLLVM X(argc, argv);
cl::ParseCommandLineOptions(argc, argv);
- std::function<MultiFileTableGenMainFn> MainFn = nullptr;
+ MultiFileTableGenMainFn MainFn = nullptr;
return TableGenMain(argv[0], MainFn);
}
More information about the llvm-commits
mailing list