aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp2
-rw-r--r--flang/test/Driver/mmlir-opts.f9012
2 files changed, 14 insertions, 0 deletions
diff --git a/flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp b/flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
index f719530..54cbd2c 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<const char *[]>(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 0000000..e99a1e7
--- /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