blob: d44da4c6a47fd83d5615af780dc33ac9943fdfff [file] [log] [blame]
# This file is licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# Description:
# Python bindings for MLIR.
#
# We define separate filegroups for files in different directories so
# that downstream users can mirror the tree in their own py_library() rules.
load("//mlir:tblgen.bzl", "gentbl_filegroup", "td_library")
package(
default_visibility = [
"//visibility:public",
],
licenses = ["notice"],
)
##---------------------------------------------------------------------------##
# Core IR modules.
##---------------------------------------------------------------------------##
filegroup(
name = "ConversionsPyFiles",
srcs = glob([
"mlir/conversions/*.py",
]),
)
filegroup(
name = "DialectCorePyFiles",
srcs = [
"mlir/dialects/_ods_common.py",
],
)
filegroup(
name = "ExecutionEnginePyFiles",
srcs = [
"mlir/execution_engine.py",
],
)
filegroup(
name = "IRPyFiles",
srcs = [
"mlir/ir.py",
],
)
filegroup(
name = "PassManagerPyFiles",
srcs = [
"mlir/passmanager.py",
],
)
filegroup(
name = "RuntimePyFiles",
srcs = glob([
"mlir/runtime/*.py",
]),
)
filegroup(
name = "TransformsPyFiles",
srcs = glob([
"mlir/transforms/*.py",
]),
)
filegroup(
name = "AllPassesRegistrationPyFiles",
srcs = glob([
"mlir/all_passes_registration/*.py",
]),
)
##---------------------------------------------------------------------------##
# Builtin dialect.
##---------------------------------------------------------------------------##
td_library(
name = "BuiltinOpsPyTdFiles",
srcs = [
"mlir/dialects/BuiltinOps.td",
"//mlir:include/mlir/Bindings/Python/Attributes.td",
],
deps = [
"//mlir:BuiltinDialectTdFiles",
"//mlir:OpBaseTdFiles",
],
)
gentbl_filegroup(
name = "BuiltinOpsPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=builtin",
],
"mlir/dialects/_builtin_ops_gen.py",
),
],
tblgen = "//mlir:mlir-tblgen",
td_file = "mlir/dialects/BuiltinOps.td",
deps = [
":BuiltinOpsPyTdFiles",
],
)
filegroup(
name = "BuiltinOpsPyFiles",
srcs = [
"mlir/dialects/_builtin_ops_ext.py",
"mlir/dialects/builtin.py",
":BuiltinOpsPyGen",
],
)
##---------------------------------------------------------------------------##
# Linalg dialect.
##---------------------------------------------------------------------------##
td_library(
name = "LinalgOpsPyTdFiles",
srcs = [
"mlir/dialects/LinalgOps.td",
"//mlir:include/mlir/Bindings/Python/Attributes.td",
],
deps = [
"//mlir:LinalgOpsTdFiles",
"//mlir:LinalgStructuredOpsTdFiles",
"//mlir:OpBaseTdFiles",
],
)
gentbl_filegroup(
name = "LinalgOpsPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=linalg",
],
"mlir/dialects/_linalg_ops_gen.py",
),
],
tblgen = "//mlir:mlir-tblgen",
td_file = "mlir/dialects/LinalgOps.td",
deps = [
":LinalgOpsPyTdFiles",
],
)
filegroup(
name = "LinalgOpsPyFiles",
srcs = [
"mlir/dialects/_linalg_ops_ext.py",
":LinalgOpsPyGen",
],
)
filegroup(
name = "LinalgOpsPackagePyFiles",
srcs = glob(["mlir/dialects/linalg/*.py"]),
)
filegroup(
name = "LinalgOpsPackageOpDSLPyFiles",
srcs = glob(["mlir/dialects/linalg/opdsl/*.py"]),
)
filegroup(
name = "LinalgOpsPackageOpDSLLangPyFiles",
srcs = glob(["mlir/dialects/linalg/opdsl/lang/*.py"]),
)
filegroup(
name = "LinalgOpsPackageOpDSLOpsPyFiles",
srcs = glob(["mlir/dialects/linalg/opdsl/ops/*.py"]),
)
filegroup(
name = "LinalgOpsPackagePassesPyFiles",
srcs = glob(["mlir/dialects/linalg/passes/*.py"]),
)
##---------------------------------------------------------------------------##
# Arithmetic dialect.
##---------------------------------------------------------------------------##
td_library(
name = "ArithmeticOpsPyTdFiles",
srcs = [
"//mlir:include/mlir/Bindings/Python/Attributes.td",
],
includes = ["../include"],
deps = [
"//mlir:ArithmeticOpsTdFiles",
"//mlir:OpBaseTdFiles",
],
)
gentbl_filegroup(
name = "ArithmeticOpsPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=arith",
],
"mlir/dialects/_arith_ops_gen.py",
),
],
tblgen = "//mlir:mlir-tblgen",
td_file = "mlir/dialects/ArithmeticOps.td",
deps = [
":ArithmeticOpsPyTdFiles",
],
)
filegroup(
name = "ArithmeticOpsPyFiles",
srcs = [
"mlir/dialects/_arith_ops_ext.py",
"mlir/dialects/arith.py",
":ArithmeticOpsPyGen",
],
)
##---------------------------------------------------------------------------##
# Math dialect.
##---------------------------------------------------------------------------##
td_library(
name = "MathOpsPyTdFiles",
srcs = [
"//mlir:include/mlir/Bindings/Python/Attributes.td",
],
includes = ["../include"],
deps = [
"//mlir:MathOpsTdFiles",
"//mlir:OpBaseTdFiles",
],
)
gentbl_filegroup(
name = "MathOpsPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=math",
],
"mlir/dialects/_math_ops_gen.py",
),
],
tblgen = "//mlir:mlir-tblgen",
td_file = "mlir/dialects/MathOps.td",
deps = [
":MathOpsPyTdFiles",
],
)
filegroup(
name = "MathOpsPyFiles",
srcs = [
"mlir/dialects/math.py",
":MathOpsPyGen",
],
)
##---------------------------------------------------------------------------##
# MemRef dialect.
##---------------------------------------------------------------------------##
td_library(
name = "MemRefOpsPyTdFiles",
srcs = [
"//mlir:include/mlir/Bindings/Python/Attributes.td",
],
includes = ["../include"],
deps = [
"//mlir:MemRefOpsTdFiles",
"//mlir:OpBaseTdFiles",
],
)
gentbl_filegroup(
name = "MemRefOpsPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=memref",
],
"mlir/dialects/_memref_ops_gen.py",
),
],
tblgen = "//mlir:mlir-tblgen",
td_file = "mlir/dialects/MemRefOps.td",
deps = [
":MemRefOpsPyTdFiles",
],
)
filegroup(
name = "MemRefOpsPyFiles",
srcs = [
"mlir/dialects/_memref_ops_ext.py",
"mlir/dialects/memref.py",
":MemRefOpsPyGen",
],
)
##---------------------------------------------------------------------------##
# PythonTest dialect.
##---------------------------------------------------------------------------##
td_library(
name = "PythonTestPyTdFiles",
srcs = [
"//mlir:include/mlir/Bindings/Python/Attributes.td",
],
deps = [
"//mlir:InferTypeOpInterfaceTdFiles",
"//mlir:OpBaseTdFiles",
],
)
gentbl_filegroup(
name = "PythonTestPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=python_test",
],
"mlir/dialects/_python_test_ops_gen.py",
),
],
tblgen = "//mlir:mlir-tblgen",
td_file = "//mlir/test/python:python_test_ops.td",
deps = [
":PythonTestPyTdFiles",
],
)
filegroup(
name = "PythonTestPyFiles",
srcs = [
"mlir/dialects/python_test.py",
":PythonTestPyGen",
],
)
##---------------------------------------------------------------------------##
# SCF dialect.
##---------------------------------------------------------------------------##
td_library(
name = "SCFPyTdFiles",
srcs = [
"//mlir:include/mlir/Bindings/Python/Attributes.td",
],
includes = ["../include"],
deps = [
"//mlir:OpBaseTdFiles",
"//mlir:SCFTdFiles",
],
)
gentbl_filegroup(
name = "SCFPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=scf",
],
"mlir/dialects/_scf_ops_gen.py",
),
],
tblgen = "//mlir:mlir-tblgen",
td_file = "mlir/dialects/SCFOps.td",
deps = [
":SCFPyTdFiles",
],
)
filegroup(
name = "SCFPyFiles",
srcs = [
"mlir/dialects/_scf_ops_ext.py",
"mlir/dialects/scf.py",
":SCFPyGen",
],
)
##---------------------------------------------------------------------------##
# Shape dialect.
##---------------------------------------------------------------------------##
td_library(
name = "ShapeOpsPyTdFiles",
srcs = [
"//mlir:include/mlir/Bindings/Python/Attributes.td",
],
includes = ["../include"],
deps = [
"//mlir:OpBaseTdFiles",
"//mlir:ShapeOpsTdFiles",
],
)
gentbl_filegroup(
name = "ShapeOpsPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=shape",
],
"mlir/dialects/_shape_ops_gen.py",
),
],
tblgen = "//mlir:mlir-tblgen",
td_file = "mlir/dialects/ShapeOps.td",
deps = [
":ShapeOpsPyTdFiles",
],
)
filegroup(
name = "ShapeOpsPyFiles",
srcs = [
"mlir/dialects/shape.py",
":ShapeOpsPyGen",
],
)
##---------------------------------------------------------------------------##
# Standard dialect.
##---------------------------------------------------------------------------##
td_library(
name = "StandardOpsPyTdFiles",
srcs = [
"//mlir:include/mlir/Bindings/Python/Attributes.td",
],
deps = [
"//mlir:OpBaseTdFiles",
"//mlir:StdOpsTdFiles",
],
)
gentbl_filegroup(
name = "StandardOpsPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=std",
],
"mlir/dialects/_std_ops_gen.py",
),
],
tblgen = "//mlir:mlir-tblgen",
td_file = "mlir/dialects/StandardOps.td",
deps = [
":StandardOpsPyTdFiles",
],
)
filegroup(
name = "StandardOpsPyFiles",
srcs = [
"mlir/dialects/_std_ops_ext.py",
"mlir/dialects/std.py",
":StandardOpsPyGen",
],
)
##---------------------------------------------------------------------------##
# SparseTensor dialect.
##---------------------------------------------------------------------------##
td_library(
name = "SparseTensorOpsPyTdFiles",
srcs = [
"//mlir:include/mlir/Bindings/Python/Attributes.td",
],
deps = [
"//mlir:OpBaseTdFiles",
"//mlir:SparseTensorTdFiles",
],
)
gentbl_filegroup(
name = "SparseTensorOpsPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=sparse_tensor",
],
"mlir/dialects/_sparse_tensor_ops_gen.py",
),
],
tblgen = "//mlir:mlir-tblgen",
td_file = "mlir/dialects/SparseTensorOps.td",
deps = [
":SparseTensorOpsPyTdFiles",
],
)
filegroup(
name = "SparseTensorOpsPyFiles",
srcs = [
"mlir/dialects/sparse_tensor.py",
":SparseTensorOpsPyGen",
],
)
##---------------------------------------------------------------------------##
# Tosa dialect.
##---------------------------------------------------------------------------##
td_library(
name = "TosaOpsPyTdFiles",
srcs = [
"//mlir:include/mlir/Bindings/Python/Attributes.td",
],
deps = [
"//mlir:OpBaseTdFiles",
"//mlir:TosaDialectTdFiles",
],
)
gentbl_filegroup(
name = "TosaOpsPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=tosa",
],
"mlir/dialects/_tosa_ops_gen.py",
),
],
tblgen = "//mlir:mlir-tblgen",
td_file = "mlir/dialects/TosaOps.td",
deps = [
":TosaOpsPyTdFiles",
],
)
filegroup(
name = "TosaOpsPyFiles",
srcs = [
"mlir/dialects/tosa.py",
":TosaOpsPyGen",
],
)
##---------------------------------------------------------------------------##
# Vector dialect.
##---------------------------------------------------------------------------##
td_library(
name = "VectorOpsPyTdFiles",
srcs = [
"//mlir:include/mlir/Bindings/Python/Attributes.td",
],
includes = ["../include"],
deps = [
"//mlir:OpBaseTdFiles",
"//mlir:VectorOpsTdFiles",
],
)
gentbl_filegroup(
name = "VectorOpsPyGen",
tbl_outs = [
(
[
"-gen-python-op-bindings",
"-bind-dialect=vector",
],
"mlir/dialects/_vector_ops_gen.py",
),
],
tblgen = "//mlir:mlir-tblgen",
td_file = "mlir/dialects/VectorOps.td",
deps = [
":VectorOpsPyTdFiles",
],
)
filegroup(
name = "VectorOpsPyFiles",
srcs = [
"mlir/dialects/vector.py",
":VectorOpsPyGen",
],
)