[fir] Split FIROptimizer lib into several smaller libraries
authorValentin Clement <clementval@gmail.com>
Tue, 5 Oct 2021 12:01:17 +0000 (14:01 +0200)
committerValentin Clement <clementval@gmail.com>
Tue, 5 Oct 2021 12:02:32 +0000 (14:02 +0200)
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>
12 files changed:
flang/lib/Lower/CMakeLists.txt
flang/lib/Optimizer/CMakeLists.txt
flang/lib/Optimizer/CodeGen/CMakeLists.txt [new file with mode: 0644]
flang/lib/Optimizer/Dialect/CMakeLists.txt [new file with mode: 0644]
flang/lib/Optimizer/Support/CMakeLists.txt [new file with mode: 0644]
flang/lib/Optimizer/Transforms/CMakeLists.txt [new file with mode: 0644]
flang/tools/fir-opt/CMakeLists.txt
flang/tools/tco/CMakeLists.txt
flang/unittests/CMakeLists.txt
flang/unittests/Lower/CMakeLists.txt [deleted file]
flang/unittests/Optimizer/CMakeLists.txt
flang/unittests/Optimizer/RTBuilder.cpp [moved from flang/unittests/Lower/RTBuilder.cpp with 100% similarity]

index 07b87ef..27e54d4 100644 (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
index b83d6a0..4b37a18 100644 (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)
diff --git a/flang/lib/Optimizer/CodeGen/CMakeLists.txt b/flang/lib/Optimizer/CodeGen/CMakeLists.txt
new file mode 100644 (file)
index 0000000..6a8d82c
--- /dev/null
@@ -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 (file)
index 0000000..7116dab
--- /dev/null
@@ -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 (file)
index 0000000..30a163d
--- /dev/null
@@ -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 (file)
index 0000000..462ae40
--- /dev/null
@@ -0,0 +1,16 @@
+add_flang_library(FIRTransforms
+  Inliner.cpp
+
+  DEPENDS
+  FIRDialect
+  FIRSupport
+  FIROptTransformsPassIncGen
+
+  LINK_LIBS
+  FIRDialect
+  MLIRAffineToStandard
+  MLIRLLVMIR
+  MLIROpenACC
+  MLIROpenMP
+  FIRSupport
+)
index efd33f9..566aa78 100644 (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
index 4a22427..1a9c5ac 100644 (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
index 95e3f6d..5acebce 100644 (file)
@@ -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 (file)
index a3f61f0..0000000
+++ /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})
index 3996c69..8bfb860 100644 (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