From c02a8cdda8733aac26481b6819a4eef000ee91c8 Mon Sep 17 00:00:00 2001 From: Valentin Clement Date: Tue, 5 Oct 2021 11:00:46 +0200 Subject: [PATCH] [fir] Split FIROptimizer lib into several smaller libraries Partition libFIROptimizer into smaller libraries that reflect the structure. Adapt potential problems. This patch is part of the upstreaming effort from fir-dev branch. It's a building stone to upstreaming transformations. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D111055 Co-authored-by: Eric Schweitz --- flang/lib/Lower/CMakeLists.txt | 8 +++- flang/lib/Optimizer/CMakeLists.txt | 38 ++----------------- flang/lib/Optimizer/CodeGen/CMakeLists.txt | 22 +++++++++++ flang/lib/Optimizer/Dialect/CMakeLists.txt | 21 ++++++++++ flang/lib/Optimizer/Support/CMakeLists.txt | 15 ++++++++ flang/lib/Optimizer/Transforms/CMakeLists.txt | 16 ++++++++ flang/tools/fir-opt/CMakeLists.txt | 5 ++- flang/tools/tco/CMakeLists.txt | 5 ++- flang/unittests/CMakeLists.txt | 1 - flang/unittests/Lower/CMakeLists.txt | 15 -------- flang/unittests/Optimizer/CMakeLists.txt | 5 ++- .../{Lower => Optimizer}/RTBuilder.cpp | 0 12 files changed, 96 insertions(+), 55 deletions(-) create mode 100644 flang/lib/Optimizer/CodeGen/CMakeLists.txt create mode 100644 flang/lib/Optimizer/Dialect/CMakeLists.txt create mode 100644 flang/lib/Optimizer/Support/CMakeLists.txt create mode 100644 flang/lib/Optimizer/Transforms/CMakeLists.txt delete mode 100644 flang/unittests/Lower/CMakeLists.txt rename flang/unittests/{Lower => Optimizer}/RTBuilder.cpp (100%) diff --git a/flang/lib/Lower/CMakeLists.txt b/flang/lib/Lower/CMakeLists.txt index 07b87ef22ce9..27e54d44893b 100644 --- a/flang/lib/Lower/CMakeLists.txt +++ b/flang/lib/Lower/CMakeLists.txt @@ -17,11 +17,15 @@ add_flang_library(FortranLower PFTBuilder.cpp DEPENDS - FIROptimizer + FIRDialect + FIRSupport + FIRTransforms ${dialect_libs} LINK_LIBS - FIROptimizer + FIRDialect + FIRSupport + FIRTransforms ${dialect_libs} FortranCommon FortranParser diff --git a/flang/lib/Optimizer/CMakeLists.txt b/flang/lib/Optimizer/CMakeLists.txt index b83d6a079db6..4b37a18340cf 100644 --- a/flang/lib/Optimizer/CMakeLists.txt +++ b/flang/lib/Optimizer/CMakeLists.txt @@ -1,34 +1,4 @@ -get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) - -add_flang_library(FIROptimizer - Dialect/FIRAttr.cpp - Dialect/FIRDialect.cpp - Dialect/FIROps.cpp - Dialect/FIRType.cpp - - Support/FIRContext.cpp - Support/InternalNames.cpp - Support/KindMapping.cpp - - CodeGen/CGOps.cpp - CodeGen/PreCGRewrite.cpp - - Transforms/Inliner.cpp - - DEPENDS - FIROpsIncGen - FIROptCodeGenPassIncGen - FIROptTransformsPassIncGen - CGOpsIncGen - ${dialect_libs} - - LINK_LIBS - ${dialect_libs} - MLIRLLVMToLLVMIRTranslation - MLIRTargetLLVMIRExport - - LINK_COMPONENTS - AsmParser - AsmPrinter - Remarks -) +add_subdirectory(CodeGen) +add_subdirectory(Dialect) +add_subdirectory(Support) +add_subdirectory(Transforms) diff --git a/flang/lib/Optimizer/CodeGen/CMakeLists.txt b/flang/lib/Optimizer/CodeGen/CMakeLists.txt new file mode 100644 index 000000000000..6a8d82cb1f67 --- /dev/null +++ b/flang/lib/Optimizer/CodeGen/CMakeLists.txt @@ -0,0 +1,22 @@ +add_flang_library(FIRCodeGen + CGOps.cpp + PreCGRewrite.cpp + + DEPENDS + FIRDialect + FIRSupport + FIROptCodeGenPassIncGen + CGOpsIncGen + + LINK_LIBS + FIRDialect + FIRSupport + MLIROpenMPToLLVM + MLIRLLVMToLLVMIRTranslation + MLIRTargetLLVMIRExport + + LINK_COMPONENTS + AsmParser + AsmPrinter + Remarks +) diff --git a/flang/lib/Optimizer/Dialect/CMakeLists.txt b/flang/lib/Optimizer/Dialect/CMakeLists.txt new file mode 100644 index 000000000000..7116dab90b6f --- /dev/null +++ b/flang/lib/Optimizer/Dialect/CMakeLists.txt @@ -0,0 +1,21 @@ +add_flang_library(FIRDialect + FIRAttr.cpp + FIRDialect.cpp + FIROps.cpp + FIRType.cpp + + DEPENDS + FIRSupport + FIROpsIncGen + + LINK_LIBS + FIRSupport + MLIROpenMPToLLVM + MLIRLLVMToLLVMIRTranslation + MLIRTargetLLVMIRExport + + LINK_COMPONENTS + AsmParser + AsmPrinter + Remarks +) diff --git a/flang/lib/Optimizer/Support/CMakeLists.txt b/flang/lib/Optimizer/Support/CMakeLists.txt new file mode 100644 index 000000000000..46fe7aa24aa7 --- /dev/null +++ b/flang/lib/Optimizer/Support/CMakeLists.txt @@ -0,0 +1,15 @@ +add_flang_library(FIRSupport + FIRContext.cpp + InternalNames.cpp + KindMapping.cpp + + DEPENDS + ${dialect_libs} + MLIRIR + + LINK_LIBS + ${dialect_libs} + MLIROpenMPToLLVMIRTranslation + MLIRLLVMToLLVMIRTranslation + MLIRTargetLLVMIRExport +) diff --git a/flang/lib/Optimizer/Transforms/CMakeLists.txt b/flang/lib/Optimizer/Transforms/CMakeLists.txt new file mode 100644 index 000000000000..462ae40354d6 --- /dev/null +++ b/flang/lib/Optimizer/Transforms/CMakeLists.txt @@ -0,0 +1,16 @@ +add_flang_library(FIRTransforms + Inliner.cpp + + DEPENDS + FIRDialect + FIRSupport + FIROptTransformsPassIncGen + + LINK_LIBS + FIRDialect + MLIRAffineToStandard + MLIRLLVMIR + MLIROpenACC + MLIROpenMP + FIRSupport +) diff --git a/flang/tools/fir-opt/CMakeLists.txt b/flang/tools/fir-opt/CMakeLists.txt index efd33f9826b9..566aa787e7c3 100644 --- a/flang/tools/fir-opt/CMakeLists.txt +++ b/flang/tools/fir-opt/CMakeLists.txt @@ -3,7 +3,10 @@ llvm_update_compile_flags(fir-opt) get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) target_link_libraries(fir-opt PRIVATE - FIROptimizer + FIRDialect + FIRSupport + FIRTransforms + FIRCodeGen ${dialect_libs} # TODO: these should be transitive dependencies from a target providing diff --git a/flang/tools/tco/CMakeLists.txt b/flang/tools/tco/CMakeLists.txt index 4a22427486d7..1a9c5ac72f15 100644 --- a/flang/tools/tco/CMakeLists.txt +++ b/flang/tools/tco/CMakeLists.txt @@ -1,7 +1,10 @@ get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) set(LIBS - FIROptimizer + FIRCodeGen + FIRDialect + FIRSupport + FIRTransforms ${dialect_libs} MLIRIR MLIRLLVMIR diff --git a/flang/unittests/CMakeLists.txt b/flang/unittests/CMakeLists.txt index 95e3f6d611dd..5acebce7192a 100644 --- a/flang/unittests/CMakeLists.txt +++ b/flang/unittests/CMakeLists.txt @@ -39,6 +39,5 @@ endfunction() add_subdirectory(Optimizer) add_subdirectory(Decimal) add_subdirectory(Evaluate) -add_subdirectory(Lower) add_subdirectory(Runtime) add_subdirectory(Frontend) diff --git a/flang/unittests/Lower/CMakeLists.txt b/flang/unittests/Lower/CMakeLists.txt deleted file mode 100644 index a3f61f0be5ed..000000000000 --- a/flang/unittests/Lower/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) - -set(LIBS - FIROptimizer - MLIRLLVMIR - ${dialect_libs} -) - -add_flang_unittest(FlangLoweringTests - RTBuilder.cpp -) - -target_link_libraries(FlangLoweringTests - PRIVATE - ${LIBS}) diff --git a/flang/unittests/Optimizer/CMakeLists.txt b/flang/unittests/Optimizer/CMakeLists.txt index 3996c69b1a98..8bfb8604b412 100644 --- a/flang/unittests/Optimizer/CMakeLists.txt +++ b/flang/unittests/Optimizer/CMakeLists.txt @@ -1,7 +1,9 @@ get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) set(LIBS - FIROptimizer + FIRCodeGen + FIRDialect + FIRSupport ${dialect_libs} ) @@ -9,6 +11,7 @@ add_flang_unittest(FlangOptimizerTests FIRContextTest.cpp InternalNamesTest.cpp KindMappingTest.cpp + RTBuilder.cpp ) target_link_libraries(FlangOptimizerTests PRIVATE diff --git a/flang/unittests/Lower/RTBuilder.cpp b/flang/unittests/Optimizer/RTBuilder.cpp similarity index 100% rename from flang/unittests/Lower/RTBuilder.cpp rename to flang/unittests/Optimizer/RTBuilder.cpp