blob: ff9cbdf6f5148bd16a2e4384c4dafe2812114c9b [file] [log] [blame]
load("@llvm-project//mlir:tblgen.bzl", "gentbl_cc_library", "gentbl_filegroup", "td_library")
package(
default_visibility = ["//visibility:public"],
features = ["layering_check"],
licenses = ["notice"],
)
exports_files(glob(["include/iree-dialects/Dialect/IREE/*.td"]))
exports_files(glob(["python/*.cpp"]))
################################################################################
# Package-by-package filegroup exports.
# Some tools can make use of such non-nested groups.
################################################################################
filegroup(
name = "python_dialects",
srcs = glob(["python/iree/compiler/dialects/*.py"]) + [
":python/iree/compiler/_iree_ops_gen.py",
":python/iree/compiler/_iree_pydm_ops_gen.py",
],
)
filegroup(
name = "python_dialects_iree_pydm",
srcs = glob(["python/iree/compiler/dialects/iree_pydm/*.py"]),
)
filegroup(
name = "python_dialects_iree_pydm_importer",
srcs = glob(["python/iree/compiler/dialects/iree_pydm/importer/*.py"]),
)
filegroup(
name = "python_dialects_iree_pydm_rtl",
srcs = glob(["python/iree/compiler/dialects/iree_pydm/rtl/*.py"]),
)
filegroup(
name = "python_dialects_iree_pydm_rtl_modules",
srcs = glob(["python/iree/compiler/dialects/iree_pydm/rtl/modules/*.py"]),
)
################################################################################
# Tablegen exports
################################################################################
filegroup(
name = "TdFilegroup",
srcs = glob([
"include/iree-dialects/Dialect/IREE/*.td",
"include/iree-dialects/Dialect/IREEPyDM/IR/*.td",
"include/iree-dialects/Dialect/IREEPyDM/Transforms/*.td",
]),
)
td_library(
name = "TdFiles",
srcs = glob([
"include/iree-dialects/Dialect/IREE/*.td",
"include/iree-dialects/Dialect/IREEPyDM/IR/*.td",
"python/iree/compiler/dialects/*.td",
]) + [
"@llvm-project//mlir:include/mlir/Bindings/Python/Attributes.td",
],
includes = ["include"],
deps = [
"@llvm-project//mlir:OpBaseTdFiles",
"@llvm-project//mlir:SideEffectTdFiles",
],
)
################################################################################
# IREE dialect
################################################################################
gentbl_cc_library(
name = "IREEOpsIncGen",
strip_include_prefix = "include",
tbl_outs = [
(
["-gen-dialect-decls"],
"include/iree-dialects/Dialect/IREE/IREEOpsDialect.h.inc",
),
(
["-gen-dialect-defs"],
"include/iree-dialects/Dialect/IREE/IREEOpsDialect.cpp.inc",
),
(
["-gen-op-decls"],
"include/iree-dialects/Dialect/IREE/IREEOps.h.inc",
),
(
["-gen-op-defs"],
"include/iree-dialects/Dialect/IREE/IREEOps.cpp.inc",
),
(
["-gen-typedef-decls"],
"include/iree-dialects/Dialect/IREE/IREEOpsTypes.h.inc",
),
(
["-gen-typedef-defs"],
"include/iree-dialects/Dialect/IREE/IREEOpsTypes.cpp.inc",
),
],
tblgen = "@llvm-project//mlir:mlir-tblgen",
td_file = "include/iree-dialects/Dialect/IREE/IREEOps.td",
deps = [":TdFiles"],
)
cc_library(
name = "IREEDialect",
srcs = glob([
"lib/Dialect/IREE/*.cpp",
]),
hdrs = glob(["include/iree-dialects/Dialect/IREE/*.h"]),
includes = ["include"],
deps = [
":IREEOpsIncGen",
"@llvm-project//llvm:Support",
"@llvm-project//mlir:IR",
"@llvm-project//mlir:Support",
],
)
gentbl_filegroup(
name = "IREEDialectPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=iree",
],
"python/iree/compiler/_iree_ops_gen.py",
),
],
tblgen = "@llvm-project//mlir:mlir-tblgen",
td_file = "python/iree/compiler/dialects/IreeBinding.td",
deps = [
":TdFiles",
],
)
################################################################################
# IREEPyDM Dialect
################################################################################
gentbl_cc_library(
name = "IREEPyDMOpsIncGen",
strip_include_prefix = "include",
tbl_outs = [
(
["-gen-dialect-decls"],
"include/iree-dialects/Dialect/IREEPyDM/IR/Dialect.h.inc",
),
(
["-gen-dialect-defs"],
"include/iree-dialects/Dialect/IREEPyDM/IR/Dialect.cpp.inc",
),
(
["-gen-op-decls"],
"include/iree-dialects/Dialect/IREEPyDM/IR/Ops.h.inc",
),
(
["-gen-op-defs"],
"include/iree-dialects/Dialect/IREEPyDM/IR/Ops.cpp.inc",
),
(
["-gen-typedef-decls"],
"include/iree-dialects/Dialect/IREEPyDM/IR/Types.h.inc",
),
(
["-gen-typedef-defs"],
"include/iree-dialects/Dialect/IREEPyDM/IR/Types.cpp.inc",
),
],
tblgen = "@llvm-project//mlir:mlir-tblgen",
td_file = "include/iree-dialects/Dialect/IREEPyDM/IR/Ops.td",
deps = [
":TdFiles",
"@llvm-project//mlir:CallInterfacesTdFiles",
"@llvm-project//mlir:ControlFlowInterfacesTdFiles",
],
)
gentbl_cc_library(
name = "IREEPyDMInterfacesIncGen",
strip_include_prefix = "include",
tbl_outs = [
(
["-gen-type-interface-decls"],
"include/iree-dialects/Dialect/IREEPyDM/IR/TypeInterfaces.h.inc",
),
(
["-gen-type-interface-defs"],
"include/iree-dialects/Dialect/IREEPyDM/IR/TypeInterfaces.cpp.inc",
),
],
tblgen = "@llvm-project//mlir:mlir-tblgen",
td_file = "include/iree-dialects/Dialect/IREEPyDM/IR/Interfaces.td",
deps = [
":TdFiles",
],
)
gentbl_cc_library(
name = "IREEPyDMTransformsIncGen",
strip_include_prefix = "include",
tbl_outs = [
(
["-gen-pass-decls"],
"include/iree-dialects/Dialect/IREEPyDM/Transforms/Passes.h.inc",
),
(
["-gen-pass-capi-header"],
"include/iree-dialects/Dialect/IREEPyDM/Transforms/Passes.capi.h.inc",
),
(
["-gen-pass-capi-impl"],
"include/iree-dialects/Dialect/IREEPyDM/Transforms/Passes.capi.cpp.inc",
),
],
tblgen = "@llvm-project//mlir:mlir-tblgen",
td_file = "include/iree-dialects/Dialect/IREEPyDM/Transforms/Passes.td",
deps = [
":TdFiles",
"@llvm-project//mlir:PassBaseTdFiles",
],
)
gentbl_filegroup(
name = "IREEPyDMDialectPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=iree_pydm",
],
"python/iree/compiler/_iree_pydm_ops_gen.py",
),
],
tblgen = "@llvm-project//mlir:mlir-tblgen",
td_file = "python/iree/compiler/dialects/IreePyDmBinding.td",
deps = [
":TdFiles",
"@llvm-project//mlir:CallInterfacesTdFiles",
"@llvm-project//mlir:ControlFlowInterfacesTdFiles",
],
)
cc_library(
name = "IREEPyDMDialect",
srcs = glob([
"lib/Dialect/IREEPyDM/IR/*.cpp",
]),
hdrs = glob([
"include/iree-dialects/Dialect/IREEPyDM/IR/*.h",
]),
includes = ["include"],
deps = [
":IREEPyDMInterfacesIncGen",
":IREEPyDMOpsIncGen",
":IREEPyDMTransformsIncGen",
"@llvm-project//llvm:Support",
"@llvm-project//mlir:CallOpInterfaces",
"@llvm-project//mlir:ControlFlowInterfaces",
"@llvm-project//mlir:IR",
"@llvm-project//mlir:Pass",
"@llvm-project//mlir:Support",
],
)
cc_library(
name = "IREEPyDMTransforms",
srcs = glob([
"lib/Dialect/IREEPyDM/Transforms/RTL/*.cpp",
"lib/Dialect/IREEPyDM/Transforms/ToIREE/*.cpp",
]),
hdrs = glob([
"include/iree-dialects/Dialect/IREEPyDM/Transforms/*.h",
"include/iree-dialects/Dialect/IREEPyDM/Transforms/**/*.h",
"lib/Dialect/IREEPyDM/Transforms/*.h",
]),
deps = [
":IREEDialect",
":IREEPyDMDialect",
":IREEPyDMTransformsIncGen",
"@llvm-project//llvm:Support",
"@llvm-project//mlir:IR",
"@llvm-project//mlir:MathDialect",
"@llvm-project//mlir:Parser",
"@llvm-project//mlir:StandardOps",
"@llvm-project//mlir:Support",
"@llvm-project//mlir:TransformUtils",
],
)
################################################################################
# CAPI
################################################################################
cc_library(
name = "CAPI",
srcs = glob(["lib/CAPI/*.cpp"]),
hdrs = glob(["include/iree-dialects-c/*.h"]),
includes = ["include"],
deps = [
":IREEDialect",
":IREEPyDMDialect",
":IREEPyDMTransforms",
"@llvm-project//mlir:CAPIIR",
"@llvm-project//mlir:IR",
"@llvm-project//mlir:Support",
],
)