[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 <eschweitz@nvidia.com>
This commit is contained in:
Valentin Clement
2021-10-05 11:00:46 +02:00
parent ca5be065c4
commit c02a8cdda8
12 changed files with 96 additions and 55 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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
)

View File

@@ -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
)

View File

@@ -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
)

View File

@@ -0,0 +1,16 @@
add_flang_library(FIRTransforms
Inliner.cpp
DEPENDS
FIRDialect
FIRSupport
FIROptTransformsPassIncGen
LINK_LIBS
FIRDialect
MLIRAffineToStandard
MLIRLLVMIR
MLIROpenACC
MLIROpenMP
FIRSupport
)

View File

@@ -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

View File

@@ -1,7 +1,10 @@
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
set(LIBS
FIROptimizer
FIRCodeGen
FIRDialect
FIRSupport
FIRTransforms
${dialect_libs}
MLIRIR
MLIRLLVMIR

View File

@@ -39,6 +39,5 @@ endfunction()
add_subdirectory(Optimizer)
add_subdirectory(Decimal)
add_subdirectory(Evaluate)
add_subdirectory(Lower)
add_subdirectory(Runtime)
add_subdirectory(Frontend)

View File

@@ -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})

View File

@@ -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