[llvm] 728a7de - Revert "[llvm-debuginfod][NFC] Switch to OptTable"
Alex Brachet via llvm-commits
llvm-commits at lists.llvm.org
Mon May 29 09:31:24 PDT 2023
Author: Alex Brachet
Date: 2023-05-29T16:31:04Z
New Revision: 728a7de88a780709c81476dd8e9287c09a0d1bcf
URL: https://github.com/llvm/llvm-project/commit/728a7de88a780709c81476dd8e9287c09a0d1bcf
DIFF: https://github.com/llvm/llvm-project/commit/728a7de88a780709c81476dd8e9287c09a0d1bcf.diff
LOG: Revert "[llvm-debuginfod][NFC] Switch to OptTable"
This reverts commit 1610627d2b42c0daf8cc20649c50ddad222f001b.
Added:
Modified:
llvm/tools/llvm-debuginfod/CMakeLists.txt
llvm/tools/llvm-debuginfod/llvm-debuginfod.cpp
llvm/utils/gn/secondary/llvm/tools/llvm-debuginfod/BUILD.gn
Removed:
llvm/tools/llvm-debuginfod/Opts.td
################################################################################
diff --git a/llvm/tools/llvm-debuginfod/CMakeLists.txt b/llvm/tools/llvm-debuginfod/CMakeLists.txt
index d32c6826d7687..72f2c19848489 100644
--- a/llvm/tools/llvm-debuginfod/CMakeLists.txt
+++ b/llvm/tools/llvm-debuginfod/CMakeLists.txt
@@ -1,16 +1,8 @@
set(LLVM_LINK_COMPONENTS
- Option
Support
)
-set(LLVM_TARGET_DEFINITIONS Opts.td)
-tablegen(LLVM Opts.inc -gen-opt-parser-defs)
-add_public_tablegen_target(DebugInfodOptsTableGen)
-
add_llvm_tool(llvm-debuginfod
llvm-debuginfod.cpp
-
- DEPENDS
- DebugInfodOptsTableGen
)
target_link_libraries(llvm-debuginfod PRIVATE LLVMDebuginfod)
if(LLVM_INSTALL_BINUTILS_SYMLINKS)
diff --git a/llvm/tools/llvm-debuginfod/Opts.td b/llvm/tools/llvm-debuginfod/Opts.td
deleted file mode 100644
index 1de241a3fc2a1..0000000000000
--- a/llvm/tools/llvm-debuginfod/Opts.td
+++ /dev/null
@@ -1,20 +0,0 @@
-include "llvm/Option/OptParser.td"
-
-class F<string name, string help> : Flag<["-"], name>, HelpText<help>;
-class FF<string name, string help>: Flag<["--"], name>, HelpText<help>;
-class S<string name, string meta, string help>: Separate<["-"], name>, HelpText<help>, MetaVarName<meta>;
-
-def help : FF<"help", "Display available options">;
-def : F<"h", "Alias for --help">, Alias<help>;
-def max_concurrency :
- S<"c", "<ulong>", "Maximum number of files to scan concurrently. "
- "If 0, use the hardware concurrency.">;
-def host_interface : S<"i", "<string>", "Host interface to bind to.">;
-def min_interval :
- S<"m", "<number>", "Minimum number of seconds to wait before an on-demand update can be"
- "triggered by a request for a buildid which is not in the collection.">;
-def port : S<"p", "<uint>", "Port to listen on. Set to 0 to bind to any available port.">;
-def scan_interval :
- S<"t", "<int>", "Number of seconds to wait between subsequent "
- "automated scans of the filesystem.">;
-def verbose_logging : F<"v", "Enable verbose logging.">;
diff --git a/llvm/tools/llvm-debuginfod/llvm-debuginfod.cpp b/llvm/tools/llvm-debuginfod/llvm-debuginfod.cpp
index 7edc78e7f3f2a..c64d4dbb3155f 100644
--- a/llvm/tools/llvm-debuginfod/llvm-debuginfod.cpp
+++ b/llvm/tools/llvm-debuginfod/llvm-debuginfod.cpp
@@ -15,120 +15,60 @@
///
//===----------------------------------------------------------------------===//
-#include "llvm/ADT/StringRef.h"
#include "llvm/Debuginfod/Debuginfod.h"
#include "llvm/Debuginfod/HTTPClient.h"
-#include "llvm/Option/ArgList.h"
-#include "llvm/Option/Option.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/InitLLVM.h"
#include "llvm/Support/ThreadPool.h"
using namespace llvm;
-// Command-line option boilerplate.
-namespace {
-enum ID {
- OPT_INVALID = 0, // This is not an option ID.
-#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
- HELPTEXT, METAVAR, VALUES) \
- OPT_##ID,
-#include "Opts.inc"
-#undef OPTION
-};
-
-#define PREFIX(NAME, VALUE) \
- static constexpr StringLiteral NAME##_init[] = VALUE; \
- static constexpr ArrayRef<StringLiteral> NAME(NAME##_init, \
- std::size(NAME##_init) - 1);
-#include "Opts.inc"
-#undef PREFIX
-
-static constexpr opt::OptTable::Info InfoTable[] = {
-#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
- HELPTEXT, METAVAR, VALUES) \
- { \
- PREFIX, NAME, HELPTEXT, \
- METAVAR, OPT_##ID, opt::Option::KIND##Class, \
- PARAM, FLAGS, OPT_##GROUP, \
- OPT_##ALIAS, ALIASARGS, VALUES},
-#include "Opts.inc"
-#undef OPTION
-};
-
-class DebuginfodOptTable : public opt::GenericOptTable {
-public:
- DebuginfodOptTable() : GenericOptTable(InfoTable) {}
-};
-} // end anonymous namespace
-
-// Options
-static unsigned Port;
-static std::string HostInterface;
-static int ScanInterval;
-static double MinInterval;
-static size_t MaxConcurrency;
-static bool VerboseLogging;
-static std::vector<std::string> ScanPaths;
+cl::OptionCategory DebuginfodCategory("llvm-debuginfod Options");
+
+static cl::list<std::string> ScanPaths(cl::Positional,
+ cl::desc("<Directories to scan>"),
+ cl::cat(DebuginfodCategory));
+
+static cl::opt<unsigned>
+ Port("p", cl::init(0),
+ cl::desc("Port to listen on. Set to 0 to bind to any available port."),
+ cl::cat(DebuginfodCategory));
+
+static cl::opt<std::string>
+ HostInterface("i", cl::init("0.0.0.0"),
+ cl::desc("Host interface to bind to."),
+ cl::cat(DebuginfodCategory));
+
+static cl::opt<int>
+ ScanInterval("t", cl::init(300),
+ cl::desc("Number of seconds to wait between subsequent "
+ "automated scans of the filesystem."),
+ cl::cat(DebuginfodCategory));
+
+static cl::opt<double> MinInterval(
+ "m", cl::init(10),
+ cl::desc(
+ "Minimum number of seconds to wait before an on-demand update can be "
+ "triggered by a request for a buildid which is not in the collection."),
+ cl::cat(DebuginfodCategory));
+
+static cl::opt<size_t>
+ MaxConcurrency("c", cl::init(0),
+ cl::desc("Maximum number of files to scan concurrently. If "
+ "0, use the hardware concurrency."),
+ cl::cat(DebuginfodCategory));
+
+static cl::opt<bool> VerboseLogging("v", cl::init(false),
+ cl::desc("Enable verbose logging."),
+ cl::cat(DebuginfodCategory));
ExitOnError ExitOnErr;
-template <typename T>
-static void parseIntArg(const opt::InputArgList &Args, int ID, T &Value,
- T Default) {
- if (const opt::Arg *A = Args.getLastArg(ID)) {
- StringRef V(A->getValue());
- if (!llvm::to_integer(V, Value, 0)) {
- errs() << A->getSpelling() + ": expected an integer, but got '" + V + "'";
- exit(1);
- }
- } else {
- Value = Default;
- }
-}
-
-static void parseArgs(int argc, char **argv) {
- DebuginfodOptTable Tbl;
- llvm::StringRef ToolName = argv[0];
- llvm::BumpPtrAllocator A;
- llvm::StringSaver Saver{A};
- opt::InputArgList Args =
- Tbl.parseArgs(argc, argv, OPT_UNKNOWN, Saver, [&](StringRef Msg) {
- llvm::errs() << Msg << '\n';
- std::exit(1);
- });
-
- if (Args.hasArg(OPT_help)) {
- Tbl.printHelp(llvm::outs(),
- "llvm-debuginfod [options] <Directories to scan>",
- ToolName.str().c_str());
- std::exit(0);
- }
-
- VerboseLogging = Args.hasArg(OPT_verbose_logging);
- ScanPaths = Args.getAllArgValues(OPT_INPUT);
-
- parseIntArg(Args, OPT_port, Port, 0u);
- parseIntArg(Args, OPT_scan_interval, ScanInterval, 300);
- parseIntArg(Args, OPT_max_concurrency, MaxConcurrency, 0ul);
-
- if (const opt::Arg *A = Args.getLastArg(OPT_min_interval)) {
- StringRef V(A->getValue());
- if (!llvm::to_float(V, MinInterval)) {
- errs() << A->getSpelling() + ": expected a number, but got '" + V + "'";
- exit(1);
- }
- } else {
- MinInterval = 10.0;
- }
-
- HostInterface = Args.getLastArgValue(OPT_host_interface, "0.0.0.0");
-}
-
int main(int argc, char **argv) {
InitLLVM X(argc, argv);
HTTPClient::initialize();
- parseArgs(argc, argv);
+ cl::HideUnrelatedOptions({&DebuginfodCategory});
+ cl::ParseCommandLineOptions(argc, argv);
SmallVector<StringRef, 1> Paths;
for (const std::string &Path : ScanPaths)
diff --git a/llvm/utils/gn/secondary/llvm/tools/llvm-debuginfod/BUILD.gn b/llvm/utils/gn/secondary/llvm/tools/llvm-debuginfod/BUILD.gn
index 236124f351bf7..c8ee330a867cb 100644
--- a/llvm/utils/gn/secondary/llvm/tools/llvm-debuginfod/BUILD.gn
+++ b/llvm/utils/gn/secondary/llvm/tools/llvm-debuginfod/BUILD.gn
@@ -1,12 +1,6 @@
import("//llvm/tools/binutils_symlinks.gni")
-import("//llvm/utils/TableGen/tablegen.gni")
import("//llvm/utils/gn/build/symlink_or_copy.gni")
-tablegen("Opts") {
- visibility = [ ":llvm-debuginfod" ]
- args = [ "-gen-opt-parser-defs" ]
-}
-
if (llvm_install_binutils_symlinks) {
symlink_or_copy("debuginfod") {
deps = [ ":llvm-debuginfod" ]
@@ -25,9 +19,7 @@ group("symlinks") {
executable("llvm-debuginfod") {
deps = [
- ":Opts",
"//llvm/lib/Debuginfod",
- "//llvm/lib/Option",
"//llvm/lib/Support",
]
sources = [ "llvm-debuginfod.cpp" ]
More information about the llvm-commits
mailing list