forked from OSchip/llvm-project
[flang][fir] Add fir-opt tool
This patch introduce the fir-opt tool. Similar to mlir-opt for FIR. It will be used in following patches to test fir opt and round-trip. Reviewed By: schweitz, mehdi_amini Differential Revision: https://reviews.llvm.org/D96535
This commit is contained in:
parent
c2a84771bb
commit
df1eeaa7b4
|
@ -34,7 +34,7 @@ set(FLANG_TEST_PARAMS
|
|||
flang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py)
|
||||
|
||||
set(FLANG_TEST_DEPENDS
|
||||
f18 FileCheck count not module_files
|
||||
f18 FileCheck count not module_files fir-opt
|
||||
)
|
||||
|
||||
list(APPEND FLANG_TEST_DEPENDS tco)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Test the FIR operations
|
||||
|
||||
// RUN: tco -emit-fir %s | tco -emit-fir | FileCheck %s
|
||||
// Parse operations and check that we can reparse what we print.
|
||||
// RUN: fir-opt %s | fir-opt | FileCheck %s
|
||||
|
||||
// CHECK-LABEL: func private @it1() -> !fir.int<4>
|
||||
// CHECK: func private @box1() -> !fir.boxchar<2>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Test the FIR types
|
||||
|
||||
// RUN: tco -emit-fir %s | tco -emit-fir | FileCheck %s
|
||||
// Parse types and check that we can reparse what we print.
|
||||
// RUN: fir-opt %s | fir-opt | FileCheck %s
|
||||
|
||||
// Fortran Intrinsic types
|
||||
// CHECK-LABEL: func private @it1() -> !fir.int<4>
|
||||
|
|
|
@ -12,3 +12,4 @@ if(FLANG_BUILD_NEW_DRIVER)
|
|||
endif()
|
||||
add_subdirectory(tco)
|
||||
add_subdirectory(f18-parse-demo)
|
||||
add_subdirectory(fir-opt)
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
add_flang_tool(fir-opt fir-opt.cpp)
|
||||
llvm_update_compile_flags(fir-opt)
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
|
||||
target_link_libraries(fir-opt PRIVATE
|
||||
FIROptimizer
|
||||
${dialect_libs}
|
||||
|
||||
# TODO: these should be transitive dependencies from a target providing
|
||||
# "registerFIRPasses()"
|
||||
MLIRAffineToStandard
|
||||
MLIROptLib
|
||||
)
|
|
@ -0,0 +1,25 @@
|
|||
//===- fir-opt.cpp - FIR Optimizer Driver -----------------------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This is to be like LLVM's opt program, only for FIR. Such a program is
|
||||
// required for roundtrip testing, etc.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "mlir/Support/MlirOptMain.h"
|
||||
#include "flang/Optimizer/Dialect/FIRDialect.h"
|
||||
|
||||
using namespace mlir;
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
fir::registerFIRPasses();
|
||||
DialectRegistry registry;
|
||||
fir::registerFIRDialects(registry);
|
||||
return failed(MlirOptMain(argc, argv, "FIR modular optimizer driver\n",
|
||||
registry, /*preloadDialectsInContext*/ false));
|
||||
}
|
Loading…
Reference in New Issue