diff --git a/flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp b/flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp index f719530a772e..54cbd2c99e4a 100644 --- a/flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp +++ b/flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp @@ -19,6 +19,7 @@ #include "flang/Frontend/FrontendActions.h" #include "flang/Frontend/FrontendPluginRegistry.h" +#include "mlir/IR/AsmState.h" #include "mlir/IR/MLIRContext.h" #include "mlir/Pass/PassManager.h" #include "clang/Driver/Options.h" @@ -142,6 +143,7 @@ bool executeCompilerInvocation(CompilerInstance *flang) { if (!flang->getFrontendOpts().mlirArgs.empty()) { mlir::registerMLIRContextCLOptions(); mlir::registerPassManagerCLOptions(); + mlir::registerAsmPrinterCLOptions(); unsigned numArgs = flang->getFrontendOpts().mlirArgs.size(); auto args = std::make_unique(numArgs + 2); args[0] = "flang (MLIR option parsing)"; diff --git a/flang/test/Driver/mmlir-opts.f90 b/flang/test/Driver/mmlir-opts.f90 new file mode 100644 index 000000000000..e99a1e777e7e --- /dev/null +++ b/flang/test/Driver/mmlir-opts.f90 @@ -0,0 +1,12 @@ +! Verify that registerMLIRContextCLOptions, registerPassManagerCLOptions and +! registerAsmPrinterCLOptions `-mmlir` options are available to the driver. + +! RUN: %flang_fc1 -mmlir --help | FileCheck %s --check-prefix=MLIR + +! MLIR: flang (MLIR option parsing) [options] +! Registered via registerPassManagerCLOptions +! MLIR: --mlir-pass-pipeline-local-reproducer +! Registered via registerAsmPrinterCLOptions +! MLIR: --mlir-print-local-scope +! Registered via registerMLIRContextCLOptions +! MLIR: --mlir-print-op-on-diagnostic