| # 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", |
| ], |
| ) |