[PATCH] D72554: [mlir] support building with BUILD_SHARED_LIBS=ON

Hiroshi Inoue via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 10 22:18:30 PST 2020


inouehrs created this revision.
inouehrs added reviewers: ftynse, mehdi_amini, nicolasvasilache.
Herald added subscribers: aartbik, herhut, lucyrfox, mgester, arpith-jacob, csigg, antiagainst, shauheen, burmako, jpienaar, rriddle, mgorny, jholewinski.
Herald added a reviewer: mravishankar.
Herald added a reviewer: antiagainst.
Herald added 1 blocking reviewer(s): nicolasvasilache.

BUILD_SHARED_LIBS is a LLVM's CMake option to build components as shared libraries (.so) instead of static library (.a). It is often used by developers to reduce build (especially linking) time as well as disk size.

This patch makes it possible to use BUILD_SHARED_LIBS=ON while compiling MLIR.
Currently, MLIR itself cannot be compiled as a shared library because of the cyclic dependency among MLIR components.
Hence this patch adds `add_mlir_library` cmake function, which sets the library type STATIC even BUILD_SHARED_LIBS is ON.
By this, we can get most of the benefits of BUILD_SHARED_LIBS=ON since LLVM components are compiled as shared libraries while only MLIR, which is smaller than the entire LLVM, is still compiled as static libraries.

This patch should not affect if BUILD_SHARED_LIBS is set to OFF (default).


https://reviews.llvm.org/D72554

Files:
  mlir/CMakeLists.txt
  mlir/cmake/modules/AddMLIR.cmake
  mlir/examples/toy/Ch6/CMakeLists.txt
  mlir/examples/toy/Ch7/CMakeLists.txt
  mlir/lib/Analysis/CMakeLists.txt
  mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
  mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt
  mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt
  mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
  mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
  mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt
  mlir/lib/Conversion/LoopToStandard/CMakeLists.txt
  mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt
  mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt
  mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt
  mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
  mlir/lib/Conversion/VectorToLoops/CMakeLists.txt
  mlir/lib/Dialect/AffineOps/CMakeLists.txt
  mlir/lib/Dialect/CMakeLists.txt
  mlir/lib/Dialect/FxpMathOps/CMakeLists.txt
  mlir/lib/Dialect/GPU/CMakeLists.txt
  mlir/lib/Dialect/LLVMIR/CMakeLists.txt
  mlir/lib/Dialect/Linalg/CMakeLists.txt
  mlir/lib/Dialect/LoopOps/CMakeLists.txt
  mlir/lib/Dialect/QuantOps/CMakeLists.txt
  mlir/lib/Dialect/SDBM/CMakeLists.txt
  mlir/lib/Dialect/SPIRV/CMakeLists.txt
  mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt
  mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
  mlir/lib/Dialect/StandardOps/CMakeLists.txt
  mlir/lib/Dialect/VectorOps/CMakeLists.txt
  mlir/lib/EDSC/CMakeLists.txt
  mlir/lib/ExecutionEngine/CMakeLists.txt
  mlir/lib/IR/CMakeLists.txt
  mlir/lib/Parser/CMakeLists.txt
  mlir/lib/Pass/CMakeLists.txt
  mlir/lib/Quantizer/CMakeLists.txt
  mlir/lib/Support/CMakeLists.txt
  mlir/lib/TableGen/CMakeLists.txt
  mlir/lib/Target/CMakeLists.txt
  mlir/lib/Transforms/CMakeLists.txt
  mlir/lib/Transforms/Utils/CMakeLists.txt
  mlir/lib/Translation/CMakeLists.txt
  mlir/test/Dialect/SPIRV/CMakeLists.txt
  mlir/test/lib/IR/CMakeLists.txt
  mlir/test/lib/Pass/CMakeLists.txt
  mlir/test/lib/TestDialect/CMakeLists.txt
  mlir/test/lib/Transforms/CMakeLists.txt
  mlir/test/mlir-cpu-runner/CMakeLists.txt
  mlir/tools/mlir-cpu-runner/CMakeLists.txt
  mlir/tools/mlir-cuda-runner/CMakeLists.txt
  mlir/tools/mlir-opt/CMakeLists.txt

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72554.237483.patch
Type: text/x-patch
Size: 25099 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200111/17892b9c/attachment.bin>


More information about the llvm-commits mailing list