https://github.com/MaskRay created https://github.com/llvm/llvm-project/pull/225870
cl::Optional is the default for cl::opt and has been no-op since https://reviews.llvm.org/D120455 removed the "may only occur zero or one times!" error. Extracted from #225628 >From 6b76a6e923b24ed2bda80f4b695c1822d92fa676 Mon Sep 17 00:00:00 2001 From: Fangrui Song <[email protected]> Date: Wed, 23 Sep 2026 10:49:53 -0700 Subject: [PATCH] Remove unneeded cl::Optional from named options. NFC cl::Optional is the default for cl::opt and has been no-op since https://reviews.llvm.org/D120455 removed the "may only occur zero or one times!" error. Extracted from #225628 --- bolt/lib/Core/DynoStats.cpp | 1 - bolt/lib/Passes/BinaryPasses.cpp | 3 +- bolt/lib/Passes/Instrumentation.cpp | 22 ++--- bolt/lib/Passes/StokeInfo.cpp | 1 - bolt/lib/Profile/DataAggregator.cpp | 3 +- .../Target/AArch64/AArch64MCPlusBuilder.cpp | 2 +- bolt/lib/Utils/CommandLineOpts.cpp | 13 ++- bolt/tools/driver/llvm-bolt.cpp | 2 - bolt/tools/merge-fdata/merge-fdata.cpp | 1 - clang/lib/CodeGen/BackendUtil.cpp | 2 +- clang/lib/CodeGen/CGExpr.cpp | 2 +- clang/lib/Tooling/CommonOptionsParser.cpp | 2 +- clang/tools/clang-diff/ClangDiff.cpp | 9 +- .../clang-import-test/clang-import-test.cpp | 7 +- .../ClangOffloadBundler.cpp | 2 +- clang/tools/clang-refactor/ClangRefactor.cpp | 6 +- .../LLJITDumpObjects/LLJITDumpObjects.cpp | 9 +- .../SpeculativeJIT/SpeculativeJIT.cpp | 2 +- llvm/lib/Analysis/IR2Vec.cpp | 10 +- .../BasicBlockMatchingAndInference.cpp | 2 +- llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp | 2 +- llvm/lib/CodeGen/GlobalISel/Legalizer.cpp | 4 +- llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp | 2 +- llvm/lib/CodeGen/MIR2Vec.cpp | 17 ++-- llvm/lib/CodeGen/TargetPassConfig.cpp | 4 +- llvm/lib/IR/OptBisect.cpp | 8 +- llvm/lib/Support/DebugCounter.cpp | 3 - .../Target/Hexagon/HexagonGlobalScheduler.cpp | 4 +- llvm/lib/Target/Mips/MipsSubtarget.cpp | 2 +- llvm/lib/Target/SPIRV/SPIRVAuxDataHandler.cpp | 2 +- llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp | 2 +- llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp | 2 +- llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp | 2 +- .../Target/XCore/XCoreLowerThreadLocal.cpp | 6 +- .../Instrumentation/AddressSanitizer.cpp | 3 +- .../Instrumentation/HWAddressSanitizer.cpp | 6 +- llvm/tools/llvm-cov/CodeCoverage.cpp | 95 +++++++++---------- llvm/tools/llvm-ir2vec/llvm-ir2vec.cpp | 2 +- llvm/tools/llvm-jitlink/llvm-jitlink.cpp | 2 +- llvm/tools/llvm-lto2/llvm-lto2.cpp | 3 +- llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp | 22 ++--- llvm/tools/llvm-profgen/ProfileGenerator.cpp | 8 +- llvm/tools/llvm-split/llvm-split.cpp | 2 +- llvm/tools/llvm-undname/llvm-undname.cpp | 19 ++-- mlir/lib/Debug/DebugCounter.cpp | 2 +- polly/lib/Analysis/ScopInfo.cpp | 7 +- polly/lib/CodeGen/LoopGenerators.cpp | 5 +- 47 files changed, 155 insertions(+), 182 deletions(-) diff --git a/bolt/lib/Core/DynoStats.cpp b/bolt/lib/Core/DynoStats.cpp index 64a6d12b76e821..4a8f4e72271246 100644 --- a/bolt/lib/Core/DynoStats.cpp +++ b/bolt/lib/Core/DynoStats.cpp @@ -33,7 +33,6 @@ extern cl::OptionCategory BoltCategory; static cl::opt<uint32_t> DynoStatsScale("dyno-stats-scale", cl::desc("scale to be applied while reporting dyno stats"), - cl::Optional, cl::init(1), cl::Hidden, cl::cat(BoltCategory)); diff --git a/bolt/lib/Passes/BinaryPasses.cpp b/bolt/lib/Passes/BinaryPasses.cpp index 4bb3f0988de6b8..16b1752c1db866 100644 --- a/bolt/lib/Passes/BinaryPasses.cpp +++ b/bolt/lib/Passes/BinaryPasses.cpp @@ -243,8 +243,7 @@ static cl::opt<int> ProfileDensityCutOffHot( static cl::opt<double> ProfileDensityThreshold( "profile-density-threshold", cl::init(60), cl::desc("If the profile density is below the given threshold, it " - "will be suggested to increase the sampling rate."), - cl::Optional); + "will be suggested to increase the sampling rate.")); } // namespace opts diff --git a/bolt/lib/Passes/Instrumentation.cpp b/bolt/lib/Passes/Instrumentation.cpp index ffcfb264159719..581d720d07db58 100644 --- a/bolt/lib/Passes/Instrumentation.cpp +++ b/bolt/lib/Passes/Instrumentation.cpp @@ -31,30 +31,30 @@ cl::opt<std::string> InstrumentationFilename( "instrumentation-file", cl::desc("file name where instrumented profile will be saved (default: " "/tmp/prof.fdata)"), - cl::init("/tmp/prof.fdata"), cl::Optional, cl::cat(BoltInstrCategory)); + cl::init("/tmp/prof.fdata"), cl::cat(BoltInstrCategory)); cl::opt<std::string> InstrumentationBinpath( "instrumentation-binpath", cl::desc("path to instrumented binary in case if /proc/self/map_files " "is not accessible due to access restriction issues"), - cl::Optional, cl::cat(BoltInstrCategory)); + cl::cat(BoltInstrCategory)); cl::opt<bool> InstrumentationFileAppendPID( "instrumentation-file-append-pid", cl::desc("append PID to saved profile file name (default: false)"), - cl::init(false), cl::Optional, cl::cat(BoltInstrCategory)); + cl::init(false), cl::cat(BoltInstrCategory)); cl::opt<bool> ConservativeInstrumentation( "conservative-instrumentation", cl::desc("disable instrumentation optimizations that sacrifice profile " "accuracy (for debugging, default: false)"), - cl::init(false), cl::Optional, cl::cat(BoltInstrCategory)); + cl::init(false), cl::cat(BoltInstrCategory)); cl::opt<uint32_t> InstrumentationMaxSize( "instrumentation-max-size", cl::desc("Set max memory size of the instrumentation bump allocator " "default: 0x6400000)"), - cl::init(0x6400000), cl::Optional, cl::cat(BoltInstrCategory)); + cl::init(0x6400000), cl::cat(BoltInstrCategory)); cl::opt<uint32_t> InstrumentationSleepTime( "instrumentation-sleep-time", @@ -62,32 +62,30 @@ cl::opt<uint32_t> InstrumentationSleepTime( "program end). This is useful for service workloads when you " "want to dump profile every X minutes or if you are killing the " "program and the profile is not being dumped at the end."), - cl::init(0), cl::Optional, cl::cat(BoltInstrCategory)); + cl::init(0), cl::cat(BoltInstrCategory)); cl::opt<bool> InstrumentationNoCountersClear( "instrumentation-no-counters-clear", cl::desc("Don't clear counters across dumps " "(use with instrumentation-sleep-time option)"), - cl::init(false), cl::Optional, cl::cat(BoltInstrCategory)); + cl::init(false), cl::cat(BoltInstrCategory)); cl::opt<bool> InstrumentationWaitForks( "instrumentation-wait-forks", cl::desc("Wait until all forks of instrumented process will finish " "(use with instrumentation-sleep-time option)"), - cl::init(false), cl::Optional, cl::cat(BoltInstrCategory)); + cl::init(false), cl::cat(BoltInstrCategory)); cl::opt<bool> InstrumentHotOnly("instrument-hot-only", cl::desc("only insert instrumentation on hot functions " "(needs profile, default: false)"), - cl::init(false), cl::Optional, - cl::cat(BoltInstrCategory)); + cl::init(false), cl::cat(BoltInstrCategory)); cl::opt<bool> InstrumentCalls("instrument-calls", cl::desc("record profile for inter-function " "control flow activity (default: true)"), - cl::init(true), cl::Optional, - cl::cat(BoltInstrCategory)); + cl::init(true), cl::cat(BoltInstrCategory)); } // namespace opts namespace llvm { diff --git a/bolt/lib/Passes/StokeInfo.cpp b/bolt/lib/Passes/StokeInfo.cpp index 05cdf63a4af18a..c3afe21775cb7b 100644 --- a/bolt/lib/Passes/StokeInfo.cpp +++ b/bolt/lib/Passes/StokeInfo.cpp @@ -26,7 +26,6 @@ static cl::OptionCategory StokeOptCategory("STOKE pass options"); static cl::opt<std::string> StokeOutputDataFilename("stoke-out", cl::desc("output data (.csv) for Stoke's use"), - cl::Optional, cl::cat(StokeOptCategory)); } diff --git a/bolt/lib/Profile/DataAggregator.cpp b/bolt/lib/Profile/DataAggregator.cpp index 9f4d988ed0c0e0..94952e23ad05ee 100644 --- a/bolt/lib/Profile/DataAggregator.cpp +++ b/bolt/lib/Profile/DataAggregator.cpp @@ -93,7 +93,7 @@ static cl::list<unsigned long long> static cl::opt<bool> ImputeTraceFallthrough( "impute-trace-fall-through", cl::desc("impute missing fall-throughs for branch-only traces"), - cl::Optional, cl::cat(AggregatorCategory)); + cl::cat(AggregatorCategory)); static cl::opt<bool> IgnoreBuildID("ignore-build-id", @@ -110,7 +110,6 @@ static cl::opt<unsigned long long> MaxSamples("max-samples", cl::init(-1ULL), cl::desc("maximum number of samples to read from LBR profile"), - cl::Optional, cl::Hidden, cl::cat(AggregatorCategory)); diff --git a/bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp b/bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp index 2a39aa63554d93..bd4fcd308c2545 100644 --- a/bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp +++ b/bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp @@ -45,7 +45,7 @@ static cl::opt<bool> NoLSEAtomics( "no-lse-atomics", cl::desc("generate instrumentation code sequence without using LSE atomic " "instruction"), - cl::init(false), cl::Optional, cl::cat(BoltInstrCategory)); + cl::init(false), cl::cat(BoltInstrCategory)); } // namespace opts namespace { diff --git a/bolt/lib/Utils/CommandLineOpts.cpp b/bolt/lib/Utils/CommandLineOpts.cpp index 74ca935ee471e3..52ed4289927aa9 100644 --- a/bolt/lib/Utils/CommandLineOpts.cpp +++ b/bolt/lib/Utils/CommandLineOpts.cpp @@ -102,7 +102,7 @@ AggregateOnly("aggregate-only", cl::opt<unsigned> BucketsPerLine("line-size", cl::desc("number of entries per line (default 256)"), - cl::init(256), cl::Optional, cl::cat(HeatmapCategory)); + cl::init(256), cl::cat(HeatmapCategory)); cl::opt<bool> CompactCodeModel("compact-code-model", @@ -238,22 +238,22 @@ cl::opt<int> HeatmapCdfPct( cl::opt<unsigned long long> HeatmapMaxAddress( "max-address", cl::init(0xffffffff), cl::desc("maximum address considered valid for heatmap (default 4GB)"), - cl::Optional, cl::cat(HeatmapCategory)); + cl::cat(HeatmapCategory)); cl::opt<unsigned long long> HeatmapMinAddress( "min-address", cl::init(0x0), cl::desc("minimum address considered valid for heatmap (default 0)"), - cl::Optional, cl::cat(HeatmapCategory)); + cl::cat(HeatmapCategory)); cl::opt<bool> HeatmapPrintMappings( "print-mappings", cl::init(false), cl::desc("print mappings in the legend, between characters/blocks and text " "sections (default false)"), - cl::Optional, cl::cat(HeatmapCategory)); + cl::cat(HeatmapCategory)); cl::opt<std::string> HeatmapOutput("heatmap", cl::desc("print heatmap to a given file"), - cl::Optional, cl::cat(HeatmapCategory)); + cl::cat(HeatmapCategory)); cl::opt<bool> HotData("hot-data", cl::desc("hot data symbols support (relocation mode)"), @@ -297,7 +297,6 @@ cl::opt<bool> Lite("lite", cl::desc("skip processing of cold functions"), cl::opt<std::string> OutputFilename("o", cl::desc("<output file>"), - cl::Optional, cl::cat(BoltOutputCategory)); cl::list<std::string> PerfData("perfdata", cl::CommaSeparated, @@ -350,7 +349,7 @@ cl::opt<std::string> SaveProfile("w", cl::opt<bool> ShowDensity("show-density", cl::desc("show profile density details"), - cl::Optional, cl::cat(AggregatorCategory)); + cl::cat(AggregatorCategory)); cl::opt<bool> SplitEH("split-eh", cl::desc("split C++ exception handling code"), cl::Hidden, cl::cat(BoltOptCategory)); diff --git a/bolt/tools/driver/llvm-bolt.cpp b/bolt/tools/driver/llvm-bolt.cpp index cc8e6d70001ebf..11a31e9e42a02e 100644 --- a/bolt/tools/driver/llvm-bolt.cpp +++ b/bolt/tools/driver/llvm-bolt.cpp @@ -54,7 +54,6 @@ static cl::opt<std::string> InputFilename(cl::Positional, static cl::opt<std::string> InputDataFilename("data", cl::desc("<data file>"), - cl::Optional, cl::cat(BoltCategory)); static cl::alias @@ -71,7 +70,6 @@ static cl::opt<std::string> static cl::opt<std::string> InputDataFilename2("data2", cl::desc("<data file>"), - cl::Optional, cl::cat(BoltCategory)); static cl::opt<std::string> diff --git a/bolt/tools/merge-fdata/merge-fdata.cpp b/bolt/tools/merge-fdata/merge-fdata.cpp index 79f0b574f639a2..d7cd725665a826 100644 --- a/bolt/tools/merge-fdata/merge-fdata.cpp +++ b/bolt/tools/merge-fdata/merge-fdata.cpp @@ -67,7 +67,6 @@ static cl::opt<bool> SuppressMergedDataOutput("q", cl::desc("do not print merged data to stdout"), cl::init(false), - cl::Optional, cl::cat(MergeFdataCategory)); static cl::opt<std::string> diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp index 8103b72cf4e3a2..5a01779613c8c0 100644 --- a/clang/lib/CodeGen/BackendUtil.cpp +++ b/clang/lib/CodeGen/BackendUtil.cpp @@ -111,7 +111,7 @@ using namespace llvm; namespace llvm { // Experiment to move sanitizers earlier. static cl::opt<bool> ClSanitizeOnOptimizerEarlyEP( - "sanitizer-early-opt-ep", cl::Optional, + "sanitizer-early-opt-ep", cl::desc("Insert sanitizers on OptimizerEarlyEP.")); // Experiment to mark cold functions as optsize/minsize/optnone. diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index aca0415d7f5449..4a481c01f6a68b 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -69,7 +69,7 @@ namespace clang { // TODO: consider deprecating ClSanitizeGuardChecks; functionality is subsumed // by -fsanitize-skip-hot-cutoff llvm::cl::opt<bool> ClSanitizeGuardChecks( - "ubsan-guard-checks", llvm::cl::Optional, + "ubsan-guard-checks", llvm::cl::desc("Guard UBSAN checks with `llvm.allow.ubsan.check()`.")); } // namespace clang diff --git a/clang/lib/Tooling/CommonOptionsParser.cpp b/clang/lib/Tooling/CommonOptionsParser.cpp index 454e7ca68a65f4..14d27b32686006 100644 --- a/clang/lib/Tooling/CommonOptionsParser.cpp +++ b/clang/lib/Tooling/CommonOptionsParser.cpp @@ -85,7 +85,7 @@ llvm::Error CommonOptionsParser::init( llvm::cl::NumOccurrencesFlag OccurrencesFlag, const char *Overview) { static cl::opt<std::string> BuildPath("p", cl::desc("Build path"), - cl::Optional, cl::cat(Category), + cl::cat(Category), cl::sub(cl::SubCommand::getAll())); static cl::list<std::string> SourcePaths( diff --git a/clang/tools/clang-diff/ClangDiff.cpp b/clang/tools/clang-diff/ClangDiff.cpp index 3046e9c5fa371d..1e1e8fdbb05031 100644 --- a/clang/tools/clang-diff/ClangDiff.cpp +++ b/clang/tools/clang-diff/ClangDiff.cpp @@ -51,14 +51,13 @@ static cl::opt<std::string> DestinationPath(cl::Positional, static cl::opt<std::string> StopAfter("stop-diff-after", cl::desc("<topdown|bottomup>"), - cl::Optional, cl::init(""), - cl::cat(ClangDiffCategory)); + cl::init(""), cl::cat(ClangDiffCategory)); -static cl::opt<int> MaxSize("s", cl::desc("<maxsize>"), cl::Optional, - cl::init(-1), cl::cat(ClangDiffCategory)); +static cl::opt<int> MaxSize("s", cl::desc("<maxsize>"), cl::init(-1), + cl::cat(ClangDiffCategory)); static cl::opt<std::string> BuildPath("p", cl::desc("Build path"), cl::init(""), - cl::Optional, cl::cat(ClangDiffCategory)); + cl::cat(ClangDiffCategory)); static cl::list<std::string> ArgsAfter( "extra-arg", diff --git a/clang/tools/clang-import-test/clang-import-test.cpp b/clang/tools/clang-import-test/clang-import-test.cpp index bcb5d2bdb89521..d555ecffee9fb0 100644 --- a/clang/tools/clang-import-test/clang-import-test.cpp +++ b/clang/tools/clang-import-test/clang-import-test.cpp @@ -48,11 +48,11 @@ static llvm::cl::list<std::string> llvm::cl::desc("Path to a file containing declarations to import")); static llvm::cl::opt<bool> - Direct("direct", llvm::cl::Optional, + Direct("direct", llvm::cl::desc("Use the parsed declarations without indirection")); static llvm::cl::opt<bool> UseOrigins( - "use-origins", llvm::cl::Optional, + "use-origins", llvm::cl::desc( "Use DeclContext origin information for more accurate lookups")); @@ -62,8 +62,7 @@ static llvm::cl::list<std::string> llvm::cl::CommaSeparated); static llvm::cl::opt<std::string> - Input("x", llvm::cl::Optional, - llvm::cl::desc("The language to parse (default: c++)"), + Input("x", llvm::cl::desc("The language to parse (default: c++)"), llvm::cl::init("c++")); static llvm::cl::opt<bool> ObjCARC("objc-arc", llvm::cl::init(false), diff --git a/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp b/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp index aa89d7561b3f89..68ebf320148b13 100644 --- a/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp +++ b/clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp @@ -145,7 +145,7 @@ int main(int argc, const char **argv) { cl::init(false), cl::cat(ClangOffloadBundlerCategory)); cl::opt<int> CompressionLevel( "compression-level", cl::desc("Specify the compression level (integer)"), - cl::value_desc("n"), cl::Optional, cl::cat(ClangOffloadBundlerCategory)); + cl::value_desc("n"), cl::cat(ClangOffloadBundlerCategory)); // Process commandline options and report errors sys::PrintStackTraceOnErrorSignal(argv[0]); diff --git a/clang/tools/clang-refactor/ClangRefactor.cpp b/clang/tools/clang-refactor/ClangRefactor.cpp index d011bf30a7c5c3..125ee74f8e382d 100644 --- a/clang/tools/clang-refactor/ClangRefactor.cpp +++ b/clang/tools/clang-refactor/ClangRefactor.cpp @@ -240,9 +240,9 @@ class CommandLineRefactoringOptionCreator final "specified for one refactoring action"); // FIXME: cl::Required can be specified when this option is present // in all rules in an action. - return std::make_unique<cl::opt<T>>( - Opt.getName(), cl::desc(Opt.getDescription()), cl::Optional, - cl::cat(Category), cl::sub(Subcommand)); + return std::make_unique<cl::opt<T>>(Opt.getName(), + cl::desc(Opt.getDescription()), + cl::cat(Category), cl::sub(Subcommand)); } llvm::SmallPtrSet<const RefactoringOption *, 8> Visited; diff --git a/llvm/examples/OrcV2Examples/LLJITDumpObjects/LLJITDumpObjects.cpp b/llvm/examples/OrcV2Examples/LLJITDumpObjects/LLJITDumpObjects.cpp index 264656a838ae8d..bd32212d3204f5 100644 --- a/llvm/examples/OrcV2Examples/LLJITDumpObjects/LLJITDumpObjects.cpp +++ b/llvm/examples/OrcV2Examples/LLJITDumpObjects/LLJITDumpObjects.cpp @@ -23,15 +23,14 @@ ExitOnError ExitOnErr; static cl::opt<bool> DumpJITdObjects("dump-jitted-objects", cl::desc("dump jitted objects"), - cl::Optional, cl::init(true)); + cl::init(true)); -static cl::opt<std::string> DumpDir("dump-dir", - cl::desc("directory to dump objects to"), - cl::Optional, cl::init("")); +static cl::opt<std::string> + DumpDir("dump-dir", cl::desc("directory to dump objects to"), cl::init("")); static cl::opt<std::string> DumpFileStem("dump-file-stem", cl::desc("Override default dump names"), - cl::Optional, cl::init("")); + cl::init("")); int main(int argc, char *argv[]) { // Initialize LLVM. diff --git a/llvm/examples/SpeculativeJIT/SpeculativeJIT.cpp b/llvm/examples/SpeculativeJIT/SpeculativeJIT.cpp index 1b88b23abdc1f0..cc536549cdd890 100644 --- a/llvm/examples/SpeculativeJIT/SpeculativeJIT.cpp +++ b/llvm/examples/SpeculativeJIT/SpeculativeJIT.cpp @@ -32,7 +32,7 @@ static cl::list<std::string> InputArgv("args", cl::Positional, cl::desc("<program arguments>..."), cl::PositionalEatsArgs); -static cl::opt<unsigned> NumThreads("num-threads", cl::Optional, +static cl::opt<unsigned> NumThreads("num-threads", cl::desc("Number of compile threads"), cl::init(4)); diff --git a/llvm/lib/Analysis/IR2Vec.cpp b/llvm/lib/Analysis/IR2Vec.cpp index 059a7a5cb0dd6e..1c11fbe0f849f8 100644 --- a/llvm/lib/Analysis/IR2Vec.cpp +++ b/llvm/lib/Analysis/IR2Vec.cpp @@ -40,20 +40,20 @@ cl::OptionCategory IR2VecCategory("IR2Vec Options"); // FIXME: Use a default vocab when not specified cl::opt<std::string> - VocabFile("ir2vec-vocab-path", cl::Optional, + VocabFile("ir2vec-vocab-path", cl::desc("Path to the vocabulary file for IR2Vec"), cl::init(""), cl::cat(IR2VecCategory)); -cl::opt<float> OpcWeight("ir2vec-opc-weight", cl::Optional, cl::init(1.0), +cl::opt<float> OpcWeight("ir2vec-opc-weight", cl::init(1.0), cl::desc("Weight for opcode embeddings"), cl::cat(IR2VecCategory)); -cl::opt<float> TypeWeight("ir2vec-type-weight", cl::Optional, cl::init(0.5), +cl::opt<float> TypeWeight("ir2vec-type-weight", cl::init(0.5), cl::desc("Weight for type embeddings"), cl::cat(IR2VecCategory)); -cl::opt<float> ArgWeight("ir2vec-arg-weight", cl::Optional, cl::init(0.2), +cl::opt<float> ArgWeight("ir2vec-arg-weight", cl::init(0.2), cl::desc("Weight for argument embeddings"), cl::cat(IR2VecCategory)); cl::opt<IR2VecKind> IR2VecEmbeddingKind( - "ir2vec-kind", cl::Optional, + "ir2vec-kind", cl::values(clEnumValN(IR2VecKind::Symbolic, "symbolic", "Generate symbolic embeddings"), clEnumValN(IR2VecKind::FlowAware, "flow-aware", diff --git a/llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp b/llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp index d956bd475c9e64..439bf14e30ee55 100644 --- a/llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp +++ b/llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp @@ -31,7 +31,7 @@ using namespace llvm; static cl::opt<float> PropellerInferThreshold("propeller-infer-threshold", cl::desc("Threshold for infer stale profile"), - cl::init(0.6), cl::Optional); + cl::init(0.6)); /// The object is used to identify and match basic blocks given their hashes. class StaleMatcher { diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp index 6d1fcdb18834a9..5ec38e5b7f6a46 100644 --- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -104,7 +104,7 @@ using namespace llvm; static cl::opt<bool> EnableCSEInIRTranslator("enable-cse-in-irtranslator", cl::desc("Should enable CSE in irtranslator"), - cl::Optional, cl::init(false)); + cl::init(false)); namespace llvm { diff --git a/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp b/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp index 8b608cd75cb127..79bd6899115c2c 100644 --- a/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp +++ b/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp @@ -41,14 +41,14 @@ using namespace llvm; static cl::opt<bool> EnableCSEInLegalizer("enable-cse-in-legalizer", cl::desc("Should enable CSE in Legalizer"), - cl::Optional, cl::init(false)); + cl::init(false)); // This is a temporary hack, should be removed soon. static cl::opt<bool> AllowGInsertAsArtifact( "allow-ginsert-as-artifact", cl::desc("Allow G_INSERT to be considered an artifact. Hack around AMDGPU " "test infinite loops."), - cl::Optional, cl::init(true)); + cl::init(true)); enum class DebugLocVerifyLevel { None, diff --git a/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp b/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp index b447b3a30249c8..261193cd790abc 100644 --- a/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp +++ b/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp @@ -63,7 +63,7 @@ static constexpr unsigned ImpossibleRepairCost = std::numeric_limits<unsigned>::max(); static cl::opt<RegBankSelectMode> RegBankSelectModeOption( - cl::desc("Mode of the RegBankSelect pass"), cl::Hidden, cl::Optional, + cl::desc("Mode of the RegBankSelect pass"), cl::Hidden, cl::values(clEnumValN(RegBankSelectMode::Fast, "regbankselect-fast", "Run the Fast mode (default mapping)"), clEnumValN(RegBankSelectMode::Greedy, "regbankselect-greedy", diff --git a/llvm/lib/CodeGen/MIR2Vec.cpp b/llvm/lib/CodeGen/MIR2Vec.cpp index 41ad87d2252592..30f30ec57020d7 100644 --- a/llvm/lib/CodeGen/MIR2Vec.cpp +++ b/llvm/lib/CodeGen/MIR2Vec.cpp @@ -38,28 +38,29 @@ cl::OptionCategory MIR2VecCategory("MIR2Vec Options"); // FIXME: Use a default vocab when not specified static cl::opt<std::string> - VocabFile("mir2vec-vocab-path", cl::Optional, + VocabFile("mir2vec-vocab-path", cl::desc("Path to the vocabulary file for MIR2Vec"), cl::init(""), cl::cat(MIR2VecCategory)); -cl::opt<float> OpcWeight("mir2vec-opc-weight", cl::Optional, cl::init(1.0), +cl::opt<float> OpcWeight("mir2vec-opc-weight", cl::init(1.0), cl::desc("Weight for machine opcode embeddings"), cl::cat(MIR2VecCategory)); -cl::opt<float> CommonOperandWeight( - "mir2vec-common-operand-weight", cl::Optional, cl::init(1.0), - cl::desc("Weight for common operand embeddings"), cl::cat(MIR2VecCategory)); cl::opt<float> - RegOperandWeight("mir2vec-reg-operand-weight", cl::Optional, cl::init(1.0), + CommonOperandWeight("mir2vec-common-operand-weight", cl::init(1.0), + cl::desc("Weight for common operand embeddings"), + cl::cat(MIR2VecCategory)); +cl::opt<float> + RegOperandWeight("mir2vec-reg-operand-weight", cl::init(1.0), cl::desc("Weight for register operand embeddings"), cl::cat(MIR2VecCategory)); cl::opt<MIR2VecKind> MIR2VecEmbeddingKind( - "mir2vec-kind", cl::Optional, + "mir2vec-kind", cl::values(clEnumValN(MIR2VecKind::Symbolic, "symbolic", "Generate symbolic embeddings for MIR")), cl::init(MIR2VecKind::Symbolic), cl::desc("MIR2Vec embedding kind"), cl::cat(MIR2VecCategory)); static cl::opt<bool> PrintAllVocabEntries( - "mir2vec-print-all-vocab-entries", cl::Optional, cl::init(false), + "mir2vec-print-all-vocab-entries", cl::init(false), cl::desc("Print all vocabulary entries including zero embeddings"), cl::cat(MIR2VecCategory)); diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp index 9e73048264b0a8..ca67084100254f 100644 --- a/llvm/lib/CodeGen/TargetPassConfig.cpp +++ b/llvm/lib/CodeGen/TargetPassConfig.cpp @@ -294,13 +294,13 @@ static cl::opt<bool> BasicBlockSectionMatchInfer( "basic-block-section-match-infer", cl::desc( "Enable matching and inference when generating basic block sections"), - cl::init(false), cl::Optional); + cl::init(false)); cl::opt<bool> EmitBBHash( "emit-bb-hash", cl::desc( "Emit the hash of basic block in the SHT_LLVM_BB_ADDR_MAP section."), - cl::init(false), cl::Optional); + cl::init(false)); /// Allow standard passes to be disabled by command line options. This supports /// simple binary flags that either suppress the pass or do nothing. diff --git a/llvm/lib/IR/OptBisect.cpp b/llvm/lib/IR/OptBisect.cpp index 39562664e609ca..7105e67d37a33a 100644 --- a/llvm/lib/IR/OptBisect.cpp +++ b/llvm/lib/IR/OptBisect.cpp @@ -29,7 +29,7 @@ static OptBisect &getOptBisector() { } static cl::opt<int> OptBisectLimit( - "opt-bisect-limit", cl::Hidden, cl::init(-1), cl::Optional, + "opt-bisect-limit", cl::Hidden, cl::init(-1), cl::cb<void, int>([](int Limit) { if (Limit == -1) // -1 means run all passes. @@ -49,7 +49,7 @@ static cl::opt<int> OptBisectLimit( "Maximum optimization to perform (equivalent to -opt-bisect=1-N)")); static cl::opt<std::string> OptBisectIntervals( - "opt-bisect", cl::Hidden, cl::Optional, + "opt-bisect", cl::Hidden, cl::cb<void, const std::string &>([](const std::string &IntervalStr) { if (IntervalStr == "-1") { // -1 means run all passes. @@ -77,10 +77,10 @@ static cl::opt<bool> OptBisectVerbose( "opt-bisect-verbose", cl::desc( "Show verbose output when opt-bisect-limit and/or opt-disable are set"), - cl::Hidden, cl::init(true), cl::Optional); + cl::Hidden, cl::init(true)); static cl::list<std::string> OptDisablePasses( - "opt-disable", cl::Hidden, cl::CommaSeparated, cl::Optional, + "opt-disable", cl::Hidden, cl::CommaSeparated, cl::cb<void, std::string>([](const std::string &Pass) { getOptBisector().setDisabled(Pass); }), diff --git a/llvm/lib/Support/DebugCounter.cpp b/llvm/lib/Support/DebugCounter.cpp index ae388474a7925a..d9786838aba23b 100644 --- a/llvm/lib/Support/DebugCounter.cpp +++ b/llvm/lib/Support/DebugCounter.cpp @@ -64,7 +64,6 @@ struct DebugCounterOwner : DebugCounter { cl::opt<bool, true> PrintDebugCounter{ "print-debug-counter", cl::Hidden, - cl::Optional, cl::location(this->ShouldPrintCounter), cl::init(false), cl::desc("Print out debug counter info after all counters accumulated"), @@ -75,14 +74,12 @@ struct DebugCounterOwner : DebugCounter { cl::opt<bool, true> PrintDebugCounterQueries{ "print-debug-counter-queries", cl::Hidden, - cl::Optional, cl::location(this->ShouldPrintCounterQueries), cl::init(false), cl::desc("Print out each query of an enabled debug counter")}; cl::opt<bool, true> BreakOnLastCount{ "debug-counter-break-on-last", cl::Hidden, - cl::Optional, cl::location(this->BreakOnLast), cl::init(false), cl::desc("Insert a break point on the last enabled count of a " diff --git a/llvm/lib/Target/Hexagon/HexagonGlobalScheduler.cpp b/llvm/lib/Target/Hexagon/HexagonGlobalScheduler.cpp index 73ffb42914ad2e..37c51da2db1707 100644 --- a/llvm/lib/Target/Hexagon/HexagonGlobalScheduler.cpp +++ b/llvm/lib/Target/Hexagon/HexagonGlobalScheduler.cpp @@ -107,11 +107,11 @@ static cl::opt<unsigned> SecondaryCandidateQueueSize("pull-up-sec-queue-size", cl::Hidden, cl::init(2)); static cl::opt<bool> PostPullUpOpt( - "post-pull-up-opt", cl::Hidden, cl::Optional, cl::init(true), + "post-pull-up-opt", cl::Hidden, cl::init(true), cl::desc("Enable opt. exposed by pull-up e.g., remove redundant jumps")); static cl::opt<bool> SpeculateNonPredInsn( - "speculate-non-pred-insn", cl::Hidden, cl::Optional, cl::init(true), + "speculate-non-pred-insn", cl::Hidden, cl::init(true), cl::desc("Speculate non-predicable instructions in parent BB")); static cl::opt<bool> diff --git a/llvm/lib/Target/Mips/MipsSubtarget.cpp b/llvm/lib/Target/Mips/MipsSubtarget.cpp index 3726a8e04166c9..1a578fd63ffe4c 100644 --- a/llvm/lib/Target/Mips/MipsSubtarget.cpp +++ b/llvm/lib/Target/Mips/MipsSubtarget.cpp @@ -28,7 +28,7 @@ using namespace llvm; cl::opt<CompactBranchPolicy> MipsCompactBranchPolicy( - "mips-compact-branches", cl::Optional, cl::init(CB_Optimal), + "mips-compact-branches", cl::init(CB_Optimal), cl::desc("MIPS Specific: Compact branch policy."), cl::values(clEnumValN(CB_Never, "never", "Do not use compact branches if possible."), diff --git a/llvm/lib/Target/SPIRV/SPIRVAuxDataHandler.cpp b/llvm/lib/Target/SPIRV/SPIRVAuxDataHandler.cpp index 469c261ac433e7..e01a5c49bfa673 100644 --- a/llvm/lib/Target/SPIRV/SPIRVAuxDataHandler.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVAuxDataHandler.cpp @@ -32,7 +32,7 @@ static cl::opt<bool> SPVPreserveAuxData( cl::desc("Preserve LLVM attributes and metadata as " "NonSemantic.AuxData ExtInst annotations (requires " "SPV_KHR_non_semantic_info)"), - cl::Optional, cl::Hidden, cl::init(false)); + cl::Hidden, cl::init(false)); namespace { enum AuxDataLinkageType : uint32_t { diff --git a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp index 39918b6610fce1..5eb0118ca8cfa3 100644 --- a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp @@ -36,7 +36,7 @@ using namespace llvm; static cl::opt<bool> SPVDumpDeps("spv-dump-deps", cl::desc("Dump MIR with SPIR-V dependencies info"), - cl::Optional, cl::init(false)); + cl::init(false)); static cl::list<SPIRV::Capability::Capability> AvoidCapabilities("avoid-spirv-capabilities", diff --git a/llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp b/llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp index 1f500828908982..a377c260a5fa14 100644 --- a/llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp @@ -33,7 +33,7 @@ using namespace llvm; static cl::opt<bool> SPVTranslatorCompat("translator-compatibility-mode", cl::desc("SPIR-V Translator compatibility mode"), - cl::Optional, cl::init(false)); + cl::init(false)); static cl::opt<ExtensionSet, false, SPIRVExtensionsParser> Extensions("spirv-ext", diff --git a/llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp b/llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp index b1f70442b26afb..7df3f9881fe730 100644 --- a/llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp @@ -266,7 +266,7 @@ static cl::opt<bool> SPVEnableNonSemanticDI( "spv-emit-nonsemantic-debug-info", cl::desc("Deprecated. Use -g to emit SPIR-V NonSemantic.Shader.DebugInfo " "instructions"), - cl::Optional, cl::init(false)); + cl::init(false)); // Add the custom SPIRVInstructionSelect from above. bool SPIRVPassConfig::addGlobalInstructionSelect() { diff --git a/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp b/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp index f32a155c85928c..e511dc040d90fe 100644 --- a/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp +++ b/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp @@ -31,9 +31,9 @@ using namespace llvm; static cl::opt<unsigned> MaxThreads( - "xcore-max-threads", cl::Optional, - cl::desc("Maximum number of threads (for emulation thread-local storage)"), - cl::Hidden, cl::value_desc("number"), cl::init(8)); + "xcore-max-threads", + cl::desc("Maximum number of threads (for emulation thread-local storage)"), + cl::Hidden, cl::value_desc("number"), cl::init(8)); namespace { /// Lowers thread local variables on the XCore. Each thread local variable is diff --git a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp index 451a60c5b6ecd3..3e9b0b3d39c47b 100644 --- a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp @@ -222,8 +222,7 @@ static cl::opt<bool> ClInstrumentWrites( static cl::opt<bool> ClUseStackSafety("asan-use-stack-safety", cl::Hidden, cl::init(true), - cl::Hidden, cl::desc("Use Stack Safety analysis results"), - cl::Optional); + cl::Hidden, cl::desc("Use Stack Safety analysis results")); static cl::opt<bool> ClInstrumentAtomics( "asan-instrument-atomics", diff --git a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp index 230977540bf822..4de3941c5860d6 100644 --- a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp @@ -139,14 +139,12 @@ static cl::opt<bool> ClInstrumentStack("hwasan-instrument-stack", static cl::opt<bool> ClUseStackSafety("hwasan-use-stack-safety", cl::Hidden, cl::init(true), - cl::Hidden, cl::desc("Use Stack Safety analysis results"), - cl::Optional); + cl::Hidden, cl::desc("Use Stack Safety analysis results")); static cl::opt<size_t> ClMaxLifetimes( "hwasan-max-lifetimes-for-alloca", cl::Hidden, cl::init(3), cl::ReallyHidden, - cl::desc("How many lifetime ends to handle for a single alloca."), - cl::Optional); + cl::desc("How many lifetime ends to handle for a single alloca.")); static cl::opt<bool> ClUseAfterScope("hwasan-use-after-scope", diff --git a/llvm/tools/llvm-cov/CodeCoverage.cpp b/llvm/tools/llvm-cov/CodeCoverage.cpp index 892d25750004f4..abc9a898a52b96 100644 --- a/llvm/tools/llvm-cov/CodeCoverage.cpp +++ b/llvm/tools/llvm-cov/CodeCoverage.cpp @@ -660,31 +660,30 @@ int CodeCoverageTool::run(Command Cmd, int argc, const char **argv) { "object", cl::desc("Coverage executable or object file")); cl::opt<bool> DebugDumpCollectedObjects( - "dump-collected-objects", cl::Optional, cl::Hidden, + "dump-collected-objects", cl::Hidden, cl::desc("Show the collected coverage object files")); cl::list<std::string> InputSourceFiles("sources", cl::Positional, cl::desc("<Source files>")); cl::opt<bool> DebugDumpCollectedPaths( - "dump-collected-paths", cl::Optional, cl::Hidden, + "dump-collected-paths", cl::Hidden, cl::desc("Show the collected paths to source files")); cl::opt<std::string> PGOFilename( - "instr-profile", cl::Optional, + "instr-profile", cl::desc( "File with the profile data obtained after an instrumented run")); cl::opt<bool> EmptyProfile( - "empty-profile", cl::Optional, + "empty-profile", cl::desc("Use a synthetic profile with no data to generate " "baseline coverage")); cl::list<std::string> Arches( "arch", cl::desc("architectures of the coverage mapping binaries")); - cl::opt<bool> DebugDump("dump", cl::Optional, - cl::desc("Show internal debug dump")); + cl::opt<bool> DebugDump("dump", cl::desc("Show internal debug dump")); cl::list<std::string> DebugFileDirectory( "debug-file-directory", @@ -705,61 +704,61 @@ int CodeCoverageTool::run(Command Cmd, int argc, const char **argv) { cl::init(CoverageViewOptions::OutputFormat::Text)); cl::list<std::string> PathRemaps( - "path-equivalence", cl::Optional, + "path-equivalence", cl::desc("<from>,<to> Map coverage data paths to local source file " "paths")); cl::OptionCategory FilteringCategory("Function filtering options"); cl::list<std::string> NameFilters( - "name", cl::Optional, + "name", cl::desc("Show code coverage only for functions with the given name"), cl::cat(FilteringCategory)); cl::list<std::string> NameFilterFiles( - "name-allowlist", cl::Optional, + "name-allowlist", cl::desc("Show code coverage only for functions listed in the given " "file"), cl::cat(FilteringCategory)); cl::list<std::string> NameRegexFilters( - "name-regex", cl::Optional, + "name-regex", cl::desc("Show code coverage only for functions that match the given " "regular expression"), cl::cat(FilteringCategory)); cl::list<std::string> IgnoreFilenameRegexFilters( - "ignore-filename-regex", cl::Optional, + "ignore-filename-regex", cl::desc("Skip source code files with file paths that match the given " "regular expression"), cl::cat(FilteringCategory)); cl::list<std::string> IncludeFilenameRegexFilters( - "include-filename-regex", cl::Optional, + "include-filename-regex", cl::desc("Only include source code files with file paths that match the " "given regular expression"), cl::cat(FilteringCategory)); cl::opt<double> RegionCoverageLtFilter( - "region-coverage-lt", cl::Optional, + "region-coverage-lt", cl::desc("Show code coverage only for functions with region coverage " "less than the given threshold"), cl::cat(FilteringCategory)); cl::opt<double> RegionCoverageGtFilter( - "region-coverage-gt", cl::Optional, + "region-coverage-gt", cl::desc("Show code coverage only for functions with region coverage " "greater than the given threshold"), cl::cat(FilteringCategory)); cl::opt<double> LineCoverageLtFilter( - "line-coverage-lt", cl::Optional, + "line-coverage-lt", cl::desc("Show code coverage only for functions with line coverage less " "than the given threshold"), cl::cat(FilteringCategory)); cl::opt<double> LineCoverageGtFilter( - "line-coverage-gt", cl::Optional, + "line-coverage-gt", cl::desc("Show code coverage only for functions with line coverage " "greater than the given threshold"), cl::cat(FilteringCategory)); @@ -772,29 +771,28 @@ int CodeCoverageTool::run(Command Cmd, int argc, const char **argv) { "Xdemangler", cl::desc("<demangler-path>|<demangler-option>")); cl::opt<bool> RegionSummary( - "show-region-summary", cl::Optional, - cl::desc("Show region statistics in summary table"), - cl::init(true)); + "show-region-summary", + cl::desc("Show region statistics in summary table"), cl::init(true)); cl::opt<bool> FunctionSummary( - "show-function-summary", cl::Optional, + "show-function-summary", cl::desc("Show function statistics in summary table"), cl::init(true)); cl::opt<bool> BranchSummary( - "show-branch-summary", cl::Optional, + "show-branch-summary", cl::desc("Show branch condition statistics in summary table"), cl::init(true)); - cl::opt<bool> MCDCSummary("show-mcdc-summary", cl::Optional, + cl::opt<bool> MCDCSummary("show-mcdc-summary", cl::desc("Show MCDC statistics in summary table"), cl::init(false)); cl::opt<bool> InstantiationSummary( - "show-instantiation-summary", cl::Optional, + "show-instantiation-summary", cl::desc("Show instantiation statistics in summary table")); cl::opt<bool> SummaryOnly( - "summary-only", cl::Optional, + "summary-only", cl::desc("Export only summary information for each source file")); cl::opt<unsigned> NumThreads( @@ -1005,18 +1003,16 @@ int CodeCoverageTool::doShow(int argc, const char **argv, cl::OptionCategory ViewCategory("Viewing options"); cl::opt<bool> ShowLineExecutionCounts( - "show-line-counts", cl::Optional, - cl::desc("Show the execution counts for each line"), cl::init(true), - cl::cat(ViewCategory)); + "show-line-counts", cl::desc("Show the execution counts for each line"), + cl::init(true), cl::cat(ViewCategory)); cl::opt<bool> ShowRegions( - "show-regions", cl::Optional, - cl::desc("Show the execution counts for each region"), + "show-regions", cl::desc("Show the execution counts for each region"), cl::cat(ViewCategory)); cl::opt<CoverageViewOptions::BranchOutputType> ShowBranches( - "show-branches", cl::Optional, - cl::desc("Show coverage for branch conditions"), cl::cat(ViewCategory), + "show-branches", cl::desc("Show coverage for branch conditions"), + cl::cat(ViewCategory), cl::values(clEnumValN(CoverageViewOptions::BranchOutputType::Count, "count", "Show True/False counts"), clEnumValN(CoverageViewOptions::BranchOutputType::Percent, @@ -1024,34 +1020,34 @@ int CodeCoverageTool::doShow(int argc, const char **argv, cl::init(CoverageViewOptions::BranchOutputType::Off)); cl::opt<bool> ShowMCDC( - "show-mcdc", cl::Optional, + "show-mcdc", cl::desc("Show the MCDC Coverage for each applicable boolean expression"), cl::cat(ViewCategory)); cl::opt<bool> ShowMCDCNonExecutedVectors( - "show-mcdc-non-executed-vectors", cl::Optional, + "show-mcdc-non-executed-vectors", cl::desc("Show MC/DC test vectors that were not executed"), cl::cat(ViewCategory)); cl::opt<bool> ShowBestLineRegionsCounts( - "show-line-counts-or-regions", cl::Optional, + "show-line-counts-or-regions", cl::desc("Show the execution counts for each line, or the execution " "counts for each region on lines that have multiple regions"), cl::cat(ViewCategory)); - cl::opt<bool> ShowExpansions("show-expansions", cl::Optional, + cl::opt<bool> ShowExpansions("show-expansions", cl::desc("Show expanded source regions"), cl::cat(ViewCategory)); - cl::opt<bool> ShowInstantiations("show-instantiations", cl::Optional, + cl::opt<bool> ShowInstantiations("show-instantiations", cl::desc("Show function instantiations"), cl::init(true), cl::cat(ViewCategory)); - cl::opt<bool> ShowDirectoryCoverage("show-directory-coverage", cl::Optional, + cl::opt<bool> ShowDirectoryCoverage("show-directory-coverage", cl::desc("Show directory coverage"), cl::cat(ViewCategory)); - cl::opt<bool> ShowCreatedTime("show-created-time", cl::Optional, + cl::opt<bool> ShowCreatedTime("show-created-time", cl::desc("Show created time for each page."), cl::init(true), cl::cat(ViewCategory)); @@ -1062,7 +1058,7 @@ int CodeCoverageTool::doShow(int argc, const char **argv, cl::aliasopt(ShowOutputDirectory)); cl::opt<bool> BinaryCounters( - "binary-counters", cl::Optional, + "binary-counters", cl::desc("Show binary counters (1/0) in lines and branches instead of " "integer execution counts"), cl::cat(ViewCategory)); @@ -1073,11 +1069,10 @@ int CodeCoverageTool::doShow(int argc, const char **argv, "Set tab expansion size for html coverage reports (default = 2)")); cl::opt<std::string> ProjectTitle( - "project-title", cl::Optional, - cl::desc("Set project title for the coverage report")); + "project-title", cl::desc("Set project title for the coverage report")); cl::opt<std::string> CovWatermark( - "coverage-watermark", cl::Optional, + "coverage-watermark", cl::desc("<high>,<low> value indicate thresholds for high and low" "coverage watermark")); @@ -1265,7 +1260,7 @@ int CodeCoverageTool::doShow(int argc, const char **argv, int CodeCoverageTool::doReport(int argc, const char **argv, CommandLineParserType commandLineParser) { cl::opt<bool> ShowFunctionSummaries( - "show-functions", cl::Optional, cl::init(false), + "show-functions", cl::init(false), cl::desc("Show coverage summaries for each function")); auto Err = commandLineParser(argc, argv); @@ -1315,24 +1310,24 @@ int CodeCoverageTool::doExport(int argc, const char **argv, cl::OptionCategory ExportCategory("Exporting options"); - cl::opt<bool> SkipExpansions("skip-expansions", cl::Optional, + cl::opt<bool> SkipExpansions("skip-expansions", cl::desc("Don't export expanded source regions"), cl::cat(ExportCategory)); - cl::opt<bool> SkipFunctions("skip-functions", cl::Optional, + cl::opt<bool> SkipFunctions("skip-functions", cl::desc("Don't export per-function data"), cl::cat(ExportCategory)); - cl::opt<bool> SkipBranches("skip-branches", cl::Optional, - cl::desc("Don't export branch data (LCOV)"), - cl::cat(ExportCategory)); + cl::opt<bool> SkipBranches("skip-branches", + cl::desc("Don't export branch data (LCOV)"), + cl::cat(ExportCategory)); - cl::opt<bool> UnifyInstantiations("unify-instantiations", cl::Optional, + cl::opt<bool> UnifyInstantiations("unify-instantiations", cl::desc("Unify function instantiations"), cl::init(true), cl::cat(ExportCategory)); cl::opt<bool> ShowMCDCNonExecutedVectors( - "show-mcdc-non-executed-vectors", cl::Optional, + "show-mcdc-non-executed-vectors", cl::desc("Include MC/DC test vectors that were not executed in the " "export"), cl::cat(ExportCategory)); diff --git a/llvm/tools/llvm-ir2vec/llvm-ir2vec.cpp b/llvm/tools/llvm-ir2vec/llvm-ir2vec.cpp index 05d62b8ec6ff88..861cd849501623 100644 --- a/llvm/tools/llvm-ir2vec/llvm-ir2vec.cpp +++ b/llvm/tools/llvm-ir2vec/llvm-ir2vec.cpp @@ -131,7 +131,7 @@ static cl::opt<std::string> OutputFilename("o", cl::desc("Output filename"), // Embedding-specific options static cl::opt<std::string> FunctionName("function", cl::desc("Process specific function only"), - cl::value_desc("name"), cl::Optional, cl::init(""), + cl::value_desc("name"), cl::init(""), cl::sub(EmbeddingsSubCmd), cl::cat(CommonCategory)); static cl::opt<EmbeddingLevel> diff --git a/llvm/tools/llvm-jitlink/llvm-jitlink.cpp b/llvm/tools/llvm-jitlink/llvm-jitlink.cpp index 2929cd57eea7fb..1160167c1cdad1 100644 --- a/llvm/tools/llvm-jitlink/llvm-jitlink.cpp +++ b/llvm/tools/llvm-jitlink/llvm-jitlink.cpp @@ -280,7 +280,7 @@ static cl::opt<std::string> ShowLinkGraphs( "show-graphs", cl::desc("Takes a posix regex and prints the link graphs of all files " "matching that regex after fixups have been applied"), - cl::Optional, cl::cat(JITLinkCategory)); + cl::cat(JITLinkCategory)); static cl::opt<bool> ShowTimes("show-times", cl::desc("Show times for llvm-jitlink phases"), diff --git a/llvm/tools/llvm-lto2/llvm-lto2.cpp b/llvm/tools/llvm-lto2/llvm-lto2.cpp index 0bdb190ca52982..e203afe0f03bd9 100644 --- a/llvm/tools/llvm-lto2/llvm-lto2.cpp +++ b/llvm/tools/llvm-lto2/llvm-lto2.cpp @@ -208,8 +208,7 @@ static cl::list<std::string> cl::desc("Load passes from plugin library")); static cl::opt<LTO::LTOKind> UnifiedLTOMode( - "unified-lto", cl::Optional, - cl::desc("Set LTO mode with the following options:"), + "unified-lto", cl::desc("Set LTO mode with the following options:"), cl::values(clEnumValN(LTO::LTOK_UnifiedThin, "thin", "ThinLTO with Unified LTO enabled"), clEnumValN(LTO::LTOK_UnifiedRegular, "full", diff --git a/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp b/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp index 553866f4e9bc4d..4ca77cc9e9af12 100644 --- a/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp +++ b/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp @@ -431,7 +431,7 @@ cl::opt<uint32_t> ModuleIndex( "mod", cl::desc( "Limit options in the Modules category to the specified module index"), - cl::Optional, cl::sub(BytesSubcommand), cl::cat(ModuleCategory)); + cl::sub(BytesSubcommand), cl::cat(ModuleCategory)); cl::opt<bool> ModuleSyms("syms", cl::desc("Dump symbol record substream"), cl::sub(BytesSubcommand), cl::cat(ModuleCategory)); cl::opt<bool> ModuleC11("c11-chunks", cl::Hidden, @@ -569,14 +569,14 @@ cl::opt<bool> DumpFpo("fpo", cl::desc("dump FPO records"), cl::cat(SymbolOptions), cl::sub(DumpSubcommand)); cl::opt<uint32_t> DumpSymbolOffset( - "symbol-offset", cl::Optional, + "symbol-offset", cl::desc("only dump symbol record with the specified symbol offset"), cl::cat(SymbolOptions), cl::sub(DumpSubcommand)); cl::opt<bool> DumpParents("show-parents", cl::desc("dump the symbols record's all parents."), cl::cat(SymbolOptions), cl::sub(DumpSubcommand)); cl::opt<uint32_t> - DumpParentDepth("parent-recurse-depth", cl::Optional, cl::init(-1U), + DumpParentDepth("parent-recurse-depth", cl::init(-1U), cl::desc("only recurse to a depth of N when displaying " "parents of a symbol record."), cl::cat(SymbolOptions), cl::sub(DumpSubcommand)); @@ -584,7 +584,7 @@ cl::opt<bool> DumpChildren("show-children", cl::desc("dump the symbols record's all children."), cl::cat(SymbolOptions), cl::sub(DumpSubcommand)); cl::opt<uint32_t> - DumpChildrenDepth("children-recurse-depth", cl::Optional, cl::init(-1U), + DumpChildrenDepth("children-recurse-depth", cl::init(-1U), cl::desc("only recurse to a depth of N when displaying " "children of a symbol record."), cl::cat(SymbolOptions), cl::sub(DumpSubcommand)); @@ -614,11 +614,11 @@ cl::opt<bool> DumpXme( cl::desc( "dump cross module exports (DEBUG_S_CROSSSCOPEEXPORTS subsection)"), cl::cat(FileOptions), cl::sub(DumpSubcommand)); -cl::opt<uint32_t> DumpModi("modi", cl::Optional, +cl::opt<uint32_t> DumpModi("modi", cl::desc("For all options that iterate over " "modules, limit to the specified module"), cl::cat(FileOptions), cl::sub(DumpSubcommand)); -cl::opt<bool> JustMyCode("jmc", cl::Optional, +cl::opt<bool> JustMyCode("jmc", cl::desc("For all options that iterate over modules, " "ignore modules from system libraries"), cl::cat(FileOptions), cl::sub(DumpSubcommand)); @@ -764,7 +764,7 @@ cl::list<uint64_t> Offsets("offset", cl::desc("The file offset to explain"), cl::opt<InputFileType> InputType( "input-type", cl::desc("Specify how to interpret the input file"), - cl::init(InputFileType::PDBFile), cl::Optional, cl::sub(ExplainSubcommand), + cl::init(InputFileType::PDBFile), cl::sub(ExplainSubcommand), cl::values(clEnumValN(InputFileType::PDBFile, "pdb-file", "Treat input as a PDB file (default)"), clEnumValN(InputFileType::PDBStream, "pdb-stream", @@ -786,18 +786,16 @@ cl::opt<std::string> OutputFile("out", cl::desc("The file to write the stream to"), cl::Required, cl::sub(ExportSubcommand)); cl::opt<std::string> - Stream("stream", cl::Optional, + Stream("stream", cl::desc("The index or name of the stream whose contents to export"), cl::sub(ExportSubcommand)); cl::opt<bool> ForceName("name", cl::desc("Force the interpretation of -stream as a " "string, even if it is a valid integer"), - cl::sub(ExportSubcommand), cl::Optional, - cl::init(false)); + cl::sub(ExportSubcommand), cl::init(false)); cl::opt<bool> DXContainer("dxcontainer", cl::desc("Export DirectX Container, if present"), - cl::sub(ExportSubcommand), cl::Optional, - cl::init(false)); + cl::sub(ExportSubcommand), cl::init(false)); } // namespace exportstream } diff --git a/llvm/tools/llvm-profgen/ProfileGenerator.cpp b/llvm/tools/llvm-profgen/ProfileGenerator.cpp index 97643c1aa17089..efc2d91bbb0640 100644 --- a/llvm/tools/llvm-profgen/ProfileGenerator.cpp +++ b/llvm/tools/llvm-profgen/ProfileGenerator.cpp @@ -95,10 +95,10 @@ static cl::opt<double> ProfileDensityThreshold( "profile-density-threshold", cl::init(50), cl::desc("If the profile density is below the given threshold, it " "will be suggested to increase the sampling rate."), - cl::Optional, cl::cat(ProfGenCategory)); + cl::cat(ProfGenCategory)); static cl::opt<bool> ShowDensity("show-density", cl::init(false), cl::desc("show profile density details"), - cl::Optional, cl::cat(ProfGenCategory)); + cl::cat(ProfGenCategory)); static cl::opt<int> ProfileDensityCutOffHot( "profile-density-cutoff-hot", cl::init(990000), cl::desc("Total samples cutoff for functions used to calculate " @@ -108,7 +108,7 @@ static cl::opt<int> ProfileDensityCutOffHot( static cl::opt<bool> UpdateTotalSamples( "update-total-samples", cl::init(false), cl::desc("Update total samples by accumulating all its body samples."), - cl::Optional, cl::cat(ProfGenCategory)); + cl::cat(ProfGenCategory)); static cl::opt<bool> GenCSNestedProfile( "gen-cs-nested-profile", cl::Hidden, cl::init(true), @@ -118,7 +118,7 @@ cl::opt<bool> InferMissingFrames( "infer-missing-frames", cl::init(true), cl::desc( "Infer missing call frames due to compiler tail call elimination."), - cl::Optional, cl::cat(ProfGenCategory)); + cl::cat(ProfGenCategory)); namespace sampleprof { diff --git a/llvm/tools/llvm-split/llvm-split.cpp b/llvm/tools/llvm-split/llvm-split.cpp index 4ead6fd4b88be8..7c00469ddae0da 100644 --- a/llvm/tools/llvm-split/llvm-split.cpp +++ b/llvm/tools/llvm-split/llvm-split.cpp @@ -87,7 +87,7 @@ static cl::opt<SplitByCategoryType> SplitByCategory( "split-by-category", cl::desc("Split by category. If present, splitting by category is used " "with the specified categorization type."), - cl::Optional, cl::init(SplitByCategoryType::SBCT_None), + cl::init(SplitByCategoryType::SBCT_None), cl::values(clEnumValN(SplitByCategoryType::SBCT_ByAttribute, "attribute", "one output module per unique value of the function " "attribute named by --category-attribute"), diff --git a/llvm/tools/llvm-undname/llvm-undname.cpp b/llvm/tools/llvm-undname/llvm-undname.cpp index 42fffeb9c1e45b..f06ab494a9d8e3 100644 --- a/llvm/tools/llvm-undname/llvm-undname.cpp +++ b/llvm/tools/llvm-undname/llvm-undname.cpp @@ -30,31 +30,30 @@ using namespace llvm; static cl::OptionCategory UndNameCategory("UndName Options"); -static cl::opt<bool> DumpBackReferences("backrefs", cl::Optional, +static cl::opt<bool> DumpBackReferences("backrefs", cl::desc("dump backreferences"), cl::Hidden, cl::init(false), cl::cat(UndNameCategory)); -static cl::opt<bool> NoAccessSpecifier("no-access-specifier", cl::Optional, +static cl::opt<bool> NoAccessSpecifier("no-access-specifier", cl::desc("skip access specifiers"), cl::Hidden, cl::init(false), cl::cat(UndNameCategory)); -static cl::opt<bool> NoCallingConvention("no-calling-convention", cl::Optional, +static cl::opt<bool> NoCallingConvention("no-calling-convention", cl::desc("skip calling convention"), cl::Hidden, cl::init(false), cl::cat(UndNameCategory)); -static cl::opt<bool> NoReturnType("no-return-type", cl::Optional, +static cl::opt<bool> NoReturnType("no-return-type", cl::desc("skip return types"), cl::Hidden, cl::init(false), cl::cat(UndNameCategory)); -static cl::opt<bool> NoMemberType("no-member-type", cl::Optional, +static cl::opt<bool> NoMemberType("no-member-type", cl::desc("skip member types"), cl::Hidden, cl::init(false), cl::cat(UndNameCategory)); -static cl::opt<bool> NoVariableType("no-variable-type", cl::Optional, +static cl::opt<bool> NoVariableType("no-variable-type", cl::desc("skip variable types"), cl::Hidden, cl::init(false), cl::cat(UndNameCategory)); -static cl::opt<std::string> RawFile("raw-file", cl::Optional, - cl::desc("for fuzzer data"), cl::Hidden, - cl::cat(UndNameCategory)); -static cl::opt<bool> WarnTrailing("warn-trailing", cl::Optional, +static cl::opt<std::string> RawFile("raw-file", cl::desc("for fuzzer data"), + cl::Hidden, cl::cat(UndNameCategory)); +static cl::opt<bool> WarnTrailing("warn-trailing", cl::desc("warn on trailing characters"), cl::Hidden, cl::init(false), cl::cat(UndNameCategory)); diff --git a/mlir/lib/Debug/DebugCounter.cpp b/mlir/lib/Debug/DebugCounter.cpp index 879f6c9365cf6c..544dec04fab55d 100644 --- a/mlir/lib/Debug/DebugCounter.cpp +++ b/mlir/lib/Debug/DebugCounter.cpp @@ -31,7 +31,7 @@ struct DebugCounterOptions { llvm::cl::CommaSeparated}; llvm::cl::opt<bool> printCounterInfo{ - "mlir-print-debug-counter", llvm::cl::init(false), llvm::cl::Optional, + "mlir-print-debug-counter", llvm::cl::init(false), llvm::cl::desc("Print out debug counter information after all counters " "have been accumulated")}; }; diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp index f0bb8ef35e5e05..e47d8602547c8b 100644 --- a/polly/lib/Analysis/ScopInfo.cpp +++ b/polly/lib/Analysis/ScopInfo.cpp @@ -157,9 +157,10 @@ static cl::opt<bool, true> XUseInstructionNames( cl::desc("Use LLVM-IR names when deriving statement names"), cl::location(UseInstructionNames), cl::Hidden, cl::cat(PollyCategory)); -static cl::opt<bool> PollyPrintInstructions( - "polly-print-instructions", cl::desc("Output instructions per ScopStmt"), - cl::Hidden, cl::Optional, cl::init(false), cl::cat(PollyCategory)); +static cl::opt<bool> + PollyPrintInstructions("polly-print-instructions", + cl::desc("Output instructions per ScopStmt"), + cl::Hidden, cl::init(false), cl::cat(PollyCategory)); static cl::list<std::string> IslArgs("polly-isl-arg", cl::value_desc("argument"), diff --git a/polly/lib/CodeGen/LoopGenerators.cpp b/polly/lib/CodeGen/LoopGenerators.cpp index df6fd9df1294d7..22af6f76f208ec 100644 --- a/polly/lib/CodeGen/LoopGenerators.cpp +++ b/polly/lib/CodeGen/LoopGenerators.cpp @@ -52,14 +52,13 @@ static cl::opt<OMPGeneralSchedulingType, true> XPollyScheduling( clEnumValN(OMPGeneralSchedulingType::Runtime, "runtime", "Runtime determined (OMP_SCHEDULE)")), cl::Hidden, cl::location(polly::PollyScheduling), - cl::init(OMPGeneralSchedulingType::Runtime), cl::Optional, - cl::cat(PollyCategory)); + cl::init(OMPGeneralSchedulingType::Runtime), cl::cat(PollyCategory)); static cl::opt<int, true> XPollyChunkSize("polly-scheduling-chunksize", cl::desc("Chunksize to use by the OpenMP runtime calls"), cl::Hidden, cl::location(polly::PollyChunkSize), - cl::init(0), cl::Optional, cl::cat(PollyCategory)); + cl::init(0), cl::cat(PollyCategory)); // We generate a loop of either of the following structures: // _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
