mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-24 22:30:13 +00:00
[mlir][sparse] Factoring out SparseTensorEnums library
This differential splits the SparseTensorEnums library out from the SparseTensorRuntime library. The actual moving of files will be handled in the next differential. Depends On D135996 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D136002
This commit is contained in:
parent
d22df0ebba
commit
181b04d276
@ -26,7 +26,8 @@
|
||||
#ifndef MLIR_EXECUTIONENGINE_SPARSETENSOR_ENUMS_H
|
||||
#define MLIR_EXECUTIONENGINE_SPARSETENSOR_ENUMS_H
|
||||
|
||||
#include "mlir/ExecutionEngine/Float16bits.h"
|
||||
// NOTE: Client code will need to include "mlir/ExecutionEngine/Float16bits.h"
|
||||
// if they want to use the `MLIR_SPARSETENSOR_FOREVERY_V` macro.
|
||||
|
||||
#include <cinttypes>
|
||||
#include <complex>
|
||||
|
@ -33,6 +33,7 @@
|
||||
#ifndef MLIR_EXECUTIONENGINE_SPARSETENSOR_STORAGE_H
|
||||
#define MLIR_EXECUTIONENGINE_SPARSETENSOR_STORAGE_H
|
||||
|
||||
#include "mlir/ExecutionEngine/Float16bits.h"
|
||||
#include "mlir/ExecutionEngine/SparseTensor/COO.h"
|
||||
#include "mlir/ExecutionEngine/SparseTensor/CheckedMul.h"
|
||||
#include "mlir/ExecutionEngine/SparseTensor/Enums.h"
|
||||
|
@ -16,6 +16,7 @@
|
||||
#define MLIR_EXECUTIONENGINE_SPARSETENSORRUNTIME_H
|
||||
|
||||
#include "mlir/ExecutionEngine/CRunnerUtils.h"
|
||||
#include "mlir/ExecutionEngine/Float16bits.h"
|
||||
#include "mlir/ExecutionEngine/SparseTensor/Enums.h"
|
||||
|
||||
#include <cinttypes>
|
||||
|
@ -14,5 +14,5 @@ add_mlir_dialect_library(MLIRSparseTensorDialect
|
||||
MLIRIR
|
||||
MLIRInferTypeOpInterface
|
||||
MLIRSupport
|
||||
MLIRSparseTensorRuntime
|
||||
MLIRSparseTensorEnums
|
||||
)
|
||||
|
@ -31,6 +31,7 @@ add_mlir_dialect_library(MLIRSparseTensorTransforms
|
||||
MLIRSCFTransforms
|
||||
MLIRSCFUtils
|
||||
MLIRSparseTensorDialect
|
||||
MLIRSparseTensorEnums
|
||||
MLIRSparseTensorUtils
|
||||
MLIRTensorDialect
|
||||
MLIRTransforms
|
||||
|
@ -137,6 +137,8 @@ add_mlir_library(mlir_c_runner_utils
|
||||
EXCLUDE_FROM_LIBMLIR
|
||||
|
||||
LINK_LIBS PUBLIC
|
||||
mlir_float16_utils
|
||||
MLIRSparseTensorEnums
|
||||
MLIRSparseTensorRuntime
|
||||
)
|
||||
set_property(TARGET mlir_c_runner_utils PROPERTY CXX_STANDARD 17)
|
||||
|
@ -1,3 +1,23 @@
|
||||
# This library is shared by both MLIRSparseTensorDialect and
|
||||
# MLIRSparseTensorRuntime, so it must not depend on any of the MLIR/LLVM
|
||||
# internals or else mlir_c_runner_utils will inherit that dependency.
|
||||
#
|
||||
# Because this is a header-only (`INTERFACE`) library, we cannot use
|
||||
# the `add_mlir_library` function. So we do our best to replicate the
|
||||
# relevant portions below. If doing so becomes too complicated, then
|
||||
# we should adjust the `add_mlir_library` function to also work for
|
||||
# `INTERFACE` libraries.
|
||||
set(MLIRSparseTensorEnums_srcs
|
||||
${MLIR_MAIN_INCLUDE_DIR}/mlir/ExecutionEngine/SparseTensor/Enums.h)
|
||||
add_library(MLIRSparseTensorEnums INTERFACE ${MLIRSparseTensorEnums_srcs})
|
||||
if(MSVC_IDE OR XCODE)
|
||||
set_source_files_properties(${MLIRSparseTensorEnums_srcs}
|
||||
PROPERTIES HEADER_FILE_ONLY ON)
|
||||
endif()
|
||||
add_mlir_library_install(MLIRSparseTensorEnums)
|
||||
set_property(TARGET MLIRSparseTensorEnums PROPERTY CXX_STANDARD 17)
|
||||
|
||||
|
||||
# Unlike mlir_float16_utils, mlir_c_runner_utils, etc, we do *not* make
|
||||
# this a shared library: because doing so causes issues when building
|
||||
# on Windows. In particular, various functions take/return `std::vector`
|
||||
@ -13,6 +33,7 @@ add_mlir_library(MLIRSparseTensorRuntime
|
||||
EXCLUDE_FROM_LIBMLIR
|
||||
|
||||
LINK_LIBS PUBLIC
|
||||
MLIRSparseTensorEnums
|
||||
mlir_float16_utils
|
||||
)
|
||||
set_property(TARGET MLIRSparseTensorRuntime PROPERTY CXX_STANDARD 17)
|
||||
|
@ -2075,6 +2075,15 @@ gentbl_cc_library(
|
||||
deps = [":PassBaseTdFiles"],
|
||||
)
|
||||
|
||||
# This library is shared by both SparseTensorDialect and
|
||||
# SparseTensorRuntime, so it must not depend on any of the MLIR/LLVM
|
||||
# internals or else mlir_c_runner_utils will inherit that dependency.
|
||||
cc_library(
|
||||
name = "SparseTensorEnums",
|
||||
hdrs = ["include/mlir/ExecutionEngine/SparseTensor/Enums.h"],
|
||||
includes = ["include"],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "SparseTensorDialect",
|
||||
srcs = ["lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp"],
|
||||
@ -2085,8 +2094,8 @@ cc_library(
|
||||
":IR",
|
||||
":InferTypeOpInterface",
|
||||
":SparseTensorAttrDefsIncGen",
|
||||
":SparseTensorEnums",
|
||||
":SparseTensorOpsIncGen",
|
||||
":SparseTensorRuntime",
|
||||
"//llvm:Support",
|
||||
],
|
||||
)
|
||||
@ -2137,8 +2146,8 @@ cc_library(
|
||||
":SCFDialect",
|
||||
":SCFTransforms",
|
||||
":SparseTensorDialect",
|
||||
":SparseTensorEnums",
|
||||
":SparseTensorPassIncGen",
|
||||
":SparseTensorRuntime",
|
||||
":SparseTensorUtils",
|
||||
":Support",
|
||||
":TensorDialect",
|
||||
@ -6755,10 +6764,6 @@ cc_binary(
|
||||
# pragma, therefore it cannot be safely/correctly used across DLL boundaries.
|
||||
# Consequently, we avoid using the "mlir_xxx_utils" naming scheme,
|
||||
# since that is reserved/intended for shared libraries only.
|
||||
#
|
||||
# We relist Float16bits.h because Enums.h includes it; rather than
|
||||
# forcing all direct-dependants state that they also directly-depend
|
||||
# on :mlir_float16_utils (to satisfy the layering_check).
|
||||
cc_library(
|
||||
name = "SparseTensorRuntime",
|
||||
srcs = [
|
||||
@ -6767,20 +6772,19 @@ cc_library(
|
||||
"lib/ExecutionEngine/SparseTensor/Storage.cpp",
|
||||
],
|
||||
hdrs = [
|
||||
"include/mlir/ExecutionEngine/Float16bits.h",
|
||||
"include/mlir/ExecutionEngine/SparseTensor/COO.h",
|
||||
"include/mlir/ExecutionEngine/SparseTensor/CheckedMul.h",
|
||||
"include/mlir/ExecutionEngine/SparseTensor/Enums.h",
|
||||
"include/mlir/ExecutionEngine/SparseTensor/ErrorHandling.h",
|
||||
"include/mlir/ExecutionEngine/SparseTensor/File.h",
|
||||
"include/mlir/ExecutionEngine/SparseTensor/Storage.h",
|
||||
],
|
||||
includes = ["include"],
|
||||
deps = [":mlir_float16_utils"],
|
||||
deps = [
|
||||
":SparseTensorEnums",
|
||||
":mlir_float16_utils",
|
||||
],
|
||||
)
|
||||
|
||||
# We relist Enums.h because SparseTensorRuntime.h includes/reexports it
|
||||
# as part of the public API.
|
||||
cc_library(
|
||||
name = "_mlir_c_runner_utils",
|
||||
srcs = [
|
||||
@ -6790,11 +6794,14 @@ cc_library(
|
||||
hdrs = [
|
||||
"include/mlir/ExecutionEngine/CRunnerUtils.h",
|
||||
"include/mlir/ExecutionEngine/Msan.h",
|
||||
"include/mlir/ExecutionEngine/SparseTensor/Enums.h",
|
||||
"include/mlir/ExecutionEngine/SparseTensorRuntime.h",
|
||||
],
|
||||
includes = ["include"],
|
||||
deps = [":SparseTensorRuntime"],
|
||||
deps = [
|
||||
":SparseTensorEnums",
|
||||
":SparseTensorRuntime",
|
||||
":mlir_float16_utils",
|
||||
],
|
||||
)
|
||||
|
||||
# Indirection to avoid 'libmlir_c_runner_utils.so' filename clash.
|
||||
|
Loading…
Reference in New Issue
Block a user