diff options
author | Jan Svoboda <jan_svoboda@apple.com> | 2023-08-04 11:19:09 -0700 |
---|---|---|
committer | Jan Svoboda <jan_svoboda@apple.com> | 2023-08-04 13:57:13 -0700 |
commit | 3f092f37b7362447cbb13f5502dae4bdd5762afd (patch) | |
tree | 9dc8c612f223fddbb3b4e029e86ae7a2a1cbd1f0 /llvm/lib/ToolDrivers/llvm-lib | |
parent | e6b2e1b88248c1f5b34fde4e51aaeb99f849b580 (diff) | |
download | llvm-3f092f37b7362447cbb13f5502dae4bdd5762afd.zip llvm-3f092f37b7362447cbb13f5502dae4bdd5762afd.tar.gz llvm-3f092f37b7362447cbb13f5502dae4bdd5762afd.tar.bz2 |
[llvm] Extract common `OptTable` bits into macros
All command-line tools using `llvm::opt` create an enum of option IDs and a table of `OptTable::Info` object. Most of the tools use the same ID (`OPT_##ID`), kind (`Option::KIND##Class`), group ID (`OPT_##GROUP`) and alias ID (`OPT_##ALIAS`). This patch extracts that common code into canonical macros. This results in fewer changes when tweaking the `OPTION` macros emitted by the TableGen backend.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D157028
Diffstat (limited to 'llvm/lib/ToolDrivers/llvm-lib')
-rw-r--r-- | llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp b/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp index 747e4c5..d158795 100644 --- a/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp +++ b/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp @@ -23,6 +23,7 @@ #include "llvm/Object/WindowsMachineFlag.h" #include "llvm/Option/Arg.h" #include "llvm/Option/ArgList.h" +#include "llvm/Option/OptTable.h" #include "llvm/Option/Option.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/Path.h" @@ -38,7 +39,7 @@ namespace { enum { OPT_INVALID = 0, -#define OPTION(_1, _2, ID, _4, _5, _6, _7, _8, _9, _10, _11, _12) OPT_##ID, +#define OPTION(...) LLVM_MAKE_OPT_ID(__VA_ARGS__), #include "Options.inc" #undef OPTION }; @@ -51,9 +52,7 @@ enum { #undef PREFIX static constexpr opt::OptTable::Info InfoTable[] = { -#define OPTION(X1, X2, ID, KIND, GROUP, ALIAS, X7, X8, X9, X10, X11, X12) \ - {X1, X2, X10, X11, OPT_##ID, opt::Option::KIND##Class, \ - X9, X8, OPT_##GROUP, OPT_##ALIAS, X7, X12}, +#define OPTION(...) LLVM_CONSTRUCT_OPT_INFO(__VA_ARGS__), #include "Options.inc" #undef OPTION }; |