aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objcopy
diff options
context:
space:
mode:
authorserge-sans-paille <sguelton@mozilla.com>2022-12-04 09:33:14 +0100
committerserge-sans-paille <sguelton@mozilla.com>2022-12-08 10:28:56 +0100
commit6a35815c73ecce7e1dfd9f54535c7c17878a459a (patch)
tree0d4c19b6999dd16e0510d9c1401a0243712b834e /llvm/tools/llvm-objcopy
parent5b56b5524454883973de7e28547c76e71b95f972 (diff)
downloadllvm-6a35815c73ecce7e1dfd9f54535c7c17878a459a.zip
llvm-6a35815c73ecce7e1dfd9f54535c7c17878a459a.tar.gz
llvm-6a35815c73ecce7e1dfd9f54535c7c17878a459a.tar.bz2
Store OptTable::Info::Name as a StringRef
This is a recommit of 8ae18303f97d5dcfaecc90b4d87effb2011ed82e, with a few cleanups. This avoids implicit conversion to StringRef at several points, which in turns avoid redundant calls to strlen. As a side effect, this greatly simplifies the implementation of StrCmpOptionNameIgnoreCase. It also eventually gives a consistent, humble speedup in compilation time (timing updated since original commit). https://llvm-compile-time-tracker.com/compare.php?from=de4b6a1bc64db33643f001ad45fae7b92b4a4688&to=c23a93d1292052b4be2fbe8c586fa31143d0c7ed&stat=instructions:u Differential Revision: https://reviews.llvm.org/D139274
Diffstat (limited to 'llvm/tools/llvm-objcopy')
-rw-r--r--llvm/tools/llvm-objcopy/ObjcopyOptions.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp b/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
index e002e24..bf39f8c 100644
--- a/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
+++ b/llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
@@ -40,7 +40,7 @@ enum ObjcopyID {
#include "ObjcopyOpts.inc"
#undef PREFIX
-const opt::OptTable::Info ObjcopyInfoTable[] = {
+static constexpr opt::OptTable::Info ObjcopyInfoTable[] = {
#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
HELPTEXT, METAVAR, VALUES) \
{OBJCOPY_##PREFIX, \
@@ -80,7 +80,7 @@ enum InstallNameToolID {
#include "InstallNameToolOpts.inc"
#undef PREFIX
-const opt::OptTable::Info InstallNameToolInfoTable[] = {
+static constexpr opt::OptTable::Info InstallNameToolInfoTable[] = {
#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
HELPTEXT, METAVAR, VALUES) \
{INSTALL_NAME_TOOL_##PREFIX, \
@@ -117,7 +117,7 @@ enum BitcodeStripID {
#include "BitcodeStripOpts.inc"
#undef PREFIX
-const opt::OptTable::Info BitcodeStripInfoTable[] = {
+static constexpr opt::OptTable::Info BitcodeStripInfoTable[] = {
#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
HELPTEXT, METAVAR, VALUES) \
{BITCODE_STRIP_##PREFIX, \
@@ -154,7 +154,7 @@ enum StripID {
#include "StripOpts.inc"
#undef PREFIX
-const opt::OptTable::Info StripInfoTable[] = {
+static constexpr opt::OptTable::Info StripInfoTable[] = {
#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
HELPTEXT, METAVAR, VALUES) \
{STRIP_##PREFIX, NAME, HELPTEXT, \