diff --git a/flang/lib/Lower/CMakeLists.txt b/flang/lib/Lower/CMakeLists.txt --- a/flang/lib/Lower/CMakeLists.txt +++ b/flang/lib/Lower/CMakeLists.txt @@ -17,11 +17,15 @@ 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 --- 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 --- /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 --- /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 --- /dev/null +++ b/flang/lib/Optimizer/Support/CMakeLists.txt @@ -0,0 +1,18 @@ +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) + +add_flang_library(FIRSupport + FIRContext.cpp + InternalNames.cpp + KindMapping.cpp + + DEPENDS + FIROpsIncGen + MLIRIR + ${dialect_libs} + + 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 --- /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 --- a/flang/tools/fir-opt/CMakeLists.txt +++ b/flang/tools/fir-opt/CMakeLists.txt @@ -3,7 +3,10 @@ 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 --- 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 --- a/flang/unittests/CMakeLists.txt +++ b/flang/unittests/CMakeLists.txt @@ -39,6 +39,5 @@ 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 --- 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 --- 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 @@ 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 rename from flang/unittests/Lower/RTBuilder.cpp rename to flang/unittests/Optimizer/RTBuilder.cpp