From 07bb29d8ffc3b82d5a7bb1217d93e8fa86e6969a Mon Sep 17 00:00:00 2001 From: serge-sans-paille Date: Fri, 30 Dec 2022 08:32:59 +0100 Subject: [OptTable] Precompute OptTable prefixes union table through tablegen This avoid rediscovering this table when reading each options, providing a sensible 2% speedup when processing and empty file, and a measurable speedup on typical workloads, see: This is optional, the legacy, on-the-fly, approach can still be used through the GenericOptTable class, while the new one is used through PrecomputedOptTable. https://llvm-compile-time-tracker.com/compare.php?from=4da6cb3202817ee2897d6b690e4af950459caea4&to=19a492b704e8f5c1dea120b9c0d3859bd78796be&stat=instructions:u Differential Revision: https://reviews.llvm.org/D140800 --- llvm/tools/llvm-ifs/llvm-ifs.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'llvm/tools/llvm-ifs/llvm-ifs.cpp') diff --git a/llvm/tools/llvm-ifs/llvm-ifs.cpp b/llvm/tools/llvm-ifs/llvm-ifs.cpp index 0c85a1f..0ca9dfd 100644 --- a/llvm/tools/llvm-ifs/llvm-ifs.cpp +++ b/llvm/tools/llvm-ifs/llvm-ifs.cpp @@ -79,9 +79,11 @@ static constexpr opt::OptTable::Info InfoTable[] = { #undef OPTION }; -class IFSOptTable : public opt::OptTable { +class IFSOptTable : public opt::GenericOptTable { public: - IFSOptTable() : OptTable(InfoTable) { setGroupedShortOptions(true); } + IFSOptTable() : opt::GenericOptTable(InfoTable) { + setGroupedShortOptions(true); + } }; struct DriverConfig { -- cgit v1.1