[mlir-opt] Add '-p' as an alias for '-pass-pipeline'
The pipeline strings have been getting more verbose over time, adding an alias for the option should help improve the ergonomics a bit. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D137347
This commit is contained in:
parent
e4889c0a04
commit
40e7741d2d
|
@ -236,7 +236,9 @@ struct PassPipelineCLParserImpl;
|
|||
class PassPipelineCLParser {
|
||||
public:
|
||||
/// Construct a pass pipeline parser with the given command line description.
|
||||
/// Optionally registers an alias for the `pass-pipeline` option.
|
||||
PassPipelineCLParser(StringRef arg, StringRef description);
|
||||
PassPipelineCLParser(StringRef arg, StringRef description, StringRef alias);
|
||||
~PassPipelineCLParser();
|
||||
|
||||
/// Returns true if this parser contains any valid options to add.
|
||||
|
@ -257,6 +259,7 @@ private:
|
|||
std::unique_ptr<detail::PassPipelineCLParserImpl> impl;
|
||||
|
||||
llvm::cl::opt<std::string> passPipeline;
|
||||
Optional<llvm::cl::alias> passPipelineAlias;
|
||||
};
|
||||
|
||||
/// This class implements a command-line parser specifically for MLIR pass
|
||||
|
|
|
@ -764,7 +764,7 @@ namespace {
|
|||
|
||||
/// The name for the command line option used for parsing the textual pass
|
||||
/// pipeline.
|
||||
static constexpr StringLiteral passPipelineArg = "pass-pipeline";
|
||||
#define PASS_PIPELINE_ARG "pass-pipeline"
|
||||
|
||||
/// Adds command line option for each registered pass or pass pipeline, as well
|
||||
/// as textual pass pipelines.
|
||||
|
@ -896,8 +896,17 @@ PassPipelineCLParser::PassPipelineCLParser(StringRef arg, StringRef description)
|
|||
: impl(std::make_unique<detail::PassPipelineCLParserImpl>(
|
||||
arg, description, /*passNamesOnly=*/false)),
|
||||
passPipeline(
|
||||
StringRef(passPipelineArg),
|
||||
PASS_PIPELINE_ARG,
|
||||
llvm::cl::desc("Textual description of the pass pipeline to run")) {}
|
||||
|
||||
PassPipelineCLParser::PassPipelineCLParser(StringRef arg, StringRef description,
|
||||
StringRef alias)
|
||||
: PassPipelineCLParser(arg, description) {
|
||||
passPipelineAlias.emplace(alias,
|
||||
llvm::cl::desc("Alias for --" PASS_PIPELINE_ARG),
|
||||
llvm::cl::aliasopt(passPipeline));
|
||||
}
|
||||
|
||||
PassPipelineCLParser::~PassPipelineCLParser() = default;
|
||||
|
||||
/// Returns true if this parser contains any valid options to add.
|
||||
|
@ -919,7 +928,7 @@ LogicalResult PassPipelineCLParser::addToPipeline(
|
|||
if (passPipeline.getNumOccurrences()) {
|
||||
if (impl->passList.getNumOccurrences())
|
||||
return errorHandler(
|
||||
"'-" + passPipelineArg +
|
||||
"'-" PASS_PIPELINE_ARG
|
||||
"' option can't be used with individual pass options");
|
||||
std::string errMsg;
|
||||
llvm::raw_string_ostream os(errMsg);
|
||||
|
|
|
@ -269,7 +269,7 @@ LogicalResult mlir::MlirOptMain(int argc, char **argv, llvm::StringRef toolName,
|
|||
registerPassManagerCLOptions();
|
||||
registerDefaultTimingManagerCLOptions();
|
||||
DebugCounter::registerCLOptions();
|
||||
PassPipelineCLParser passPipeline("", "Compiler passes to run");
|
||||
PassPipelineCLParser passPipeline("", "Compiler passes to run", "p");
|
||||
|
||||
// Build the list of dialects as a header for the --help message.
|
||||
std::string helpHeader = (toolName + "\nAvailable Dialects: ").str();
|
||||
|
|
|
@ -40,3 +40,6 @@
|
|||
// CHECK-NEXT: transform
|
||||
// CHECK-NEXT: vector
|
||||
// CHECK-NEXT: x86vector
|
||||
|
||||
// RUN: mlir-opt --help-hidden | FileCheck %s -check-prefix=CHECK-HELP
|
||||
// CHECK-HELP: -p - Alias for --pass-pipeline
|
||||
|
|
Loading…
Reference in New Issue