1# This file is licensed under the Apache License v2.0 with LLVM Exceptions.
2# See https://llvm.org/LICENSE.txt for license information.
3# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4
5# Description:
6#   Python bindings for MLIR.
7#
8# We define separate filegroups for files in different directories so
9# that downstream users can mirror the tree in their own py_library() rules.
10
11load("//mlir:tblgen.bzl", "gentbl_filegroup", "td_library")
12
13package(
14    default_visibility = ["//visibility:public"],
15    licenses = ["notice"],
16)
17
18##---------------------------------------------------------------------------##
19# Core IR modules.
20##---------------------------------------------------------------------------##
21
22filegroup(
23    name = "DialectCorePyFiles",
24    srcs = [
25        "mlir/dialects/_ods_common.py",
26    ],
27)
28
29filegroup(
30    name = "ExecutionEnginePyFiles",
31    srcs = [
32        "mlir/execution_engine.py",
33    ],
34)
35
36filegroup(
37    name = "ExecutionEnginePyIFiles",
38    srcs = [
39        "mlir/_mlir_libs/_mlirExecutionEngine.pyi",
40    ],
41)
42
43filegroup(
44    name = "IRPyFiles",
45    srcs = [
46        "mlir/ir.py",
47    ],
48)
49
50filegroup(
51    name = "IRPyIFiles",
52    srcs = [
53        "mlir/_mlir_libs/_mlir/__init__.pyi",
54        "mlir/_mlir_libs/_mlir/ir.pyi",
55    ],
56)
57
58filegroup(
59    name = "MlirLibsPyFiles",
60    srcs = [
61        "mlir/_mlir_libs/__init__.py",
62    ],
63)
64
65filegroup(
66    name = "PassManagerPyFiles",
67    srcs = [
68        "mlir/passmanager.py",
69    ],
70)
71
72filegroup(
73    name = "PassManagerPyIFiles",
74    srcs = [
75        "mlir/_mlir_libs/_mlir/passmanager.pyi",
76    ],
77)
78
79filegroup(
80    name = "RuntimePyFiles",
81    srcs = glob([
82        "mlir/runtime/*.py",
83    ]),
84)
85
86##---------------------------------------------------------------------------##
87# Builtin dialect.
88##---------------------------------------------------------------------------##
89
90td_library(
91    name = "BuiltinOpsPyTdFiles",
92    srcs = [
93        "mlir/dialects/BuiltinOps.td",
94        "//mlir:include/mlir/Bindings/Python/Attributes.td",
95    ],
96    deps = [
97        "//mlir:BuiltinDialectTdFiles",
98        "//mlir:FunctionInterfacesTdFiles",
99        "//mlir:OpBaseTdFiles",
100    ],
101)
102
103gentbl_filegroup(
104    name = "BuiltinOpsPyGen",
105    tbl_outs = [
106        (
107            [
108                "-gen-python-op-bindings",
109                "-bind-dialect=builtin",
110            ],
111            "mlir/dialects/_builtin_ops_gen.py",
112        ),
113    ],
114    tblgen = "//mlir:mlir-tblgen",
115    td_file = "mlir/dialects/BuiltinOps.td",
116    deps = [
117        ":BuiltinOpsPyTdFiles",
118    ],
119)
120
121filegroup(
122    name = "BuiltinOpsPyFiles",
123    srcs = [
124        "mlir/dialects/_builtin_ops_ext.py",
125        "mlir/dialects/builtin.py",
126        ":BuiltinOpsPyGen",
127    ],
128)
129
130##---------------------------------------------------------------------------##
131# Linalg dialect.
132##---------------------------------------------------------------------------##
133
134td_library(
135    name = "LinalgOpsPyTdFiles",
136    srcs = [
137        "mlir/dialects/LinalgOps.td",
138        "//mlir:include/mlir/Bindings/Python/Attributes.td",
139    ],
140    deps = [
141        "//mlir:LinalgOpsTdFiles",
142        "//mlir:LinalgStructuredOpsTdFiles",
143        "//mlir:OpBaseTdFiles",
144    ],
145)
146
147gentbl_filegroup(
148    name = "LinalgOpsPyGen",
149    tbl_outs = [
150        (
151            [
152                "-gen-python-op-bindings",
153                "-bind-dialect=linalg",
154            ],
155            "mlir/dialects/_linalg_ops_gen.py",
156        ),
157    ],
158    tblgen = "//mlir:mlir-tblgen",
159    td_file = "mlir/dialects/LinalgOps.td",
160    deps = [
161        ":LinalgOpsPyTdFiles",
162    ],
163)
164
165filegroup(
166    name = "LinalgOpsPyFiles",
167    srcs = [
168        "mlir/dialects/_linalg_ops_ext.py",
169        ":LinalgOpsPyGen",
170    ],
171)
172
173filegroup(
174    name = "LinalgOpsPackagePyFiles",
175    srcs = glob(["mlir/dialects/linalg/*.py"]),
176)
177
178filegroup(
179    name = "LinalgOpsPackageOpDSLPyFiles",
180    srcs = glob(["mlir/dialects/linalg/opdsl/*.py"]),
181)
182
183filegroup(
184    name = "LinalgOpsPackageOpDSLLangPyFiles",
185    srcs = glob(["mlir/dialects/linalg/opdsl/lang/*.py"]),
186)
187
188filegroup(
189    name = "LinalgOpsPackageOpDSLOpsPyFiles",
190    srcs = glob(["mlir/dialects/linalg/opdsl/ops/*.py"]),
191)
192
193filegroup(
194    name = "LinalgOpsPackagePassesPyFiles",
195    srcs = glob(["mlir/dialects/linalg/passes/*.py"]),
196)
197
198##---------------------------------------------------------------------------##
199# Arithmetic dialect.
200##---------------------------------------------------------------------------##
201
202td_library(
203    name = "ArithmeticOpsPyTdFiles",
204    srcs = [
205        "//mlir:include/mlir/Bindings/Python/Attributes.td",
206    ],
207    includes = ["../include"],
208    deps = [
209        "//mlir:ArithmeticOpsTdFiles",
210        "//mlir:OpBaseTdFiles",
211    ],
212)
213
214gentbl_filegroup(
215    name = "ArithmeticOpsPyGen",
216    tbl_outs = [
217        (
218            [
219                "-gen-python-op-bindings",
220                "-bind-dialect=arith",
221            ],
222            "mlir/dialects/_arith_ops_gen.py",
223        ),
224    ],
225    tblgen = "//mlir:mlir-tblgen",
226    td_file = "mlir/dialects/ArithmeticOps.td",
227    deps = [
228        ":ArithmeticOpsPyTdFiles",
229    ],
230)
231
232filegroup(
233    name = "ArithmeticOpsPyFiles",
234    srcs = [
235        "mlir/dialects/_arith_ops_ext.py",
236        "mlir/dialects/arith.py",
237        ":ArithmeticOpsPyGen",
238    ],
239)
240
241##---------------------------------------------------------------------------##
242# Bufferization dialect.
243##---------------------------------------------------------------------------##
244
245td_library(
246    name = "BufferizationOpsPyTdFiles",
247    srcs = [
248        "//mlir:include/mlir/Bindings/Python/Attributes.td",
249    ],
250    includes = ["../include"],
251    deps = [
252        "//mlir:BufferizableOpInterfaceTdFiles",
253        "//mlir:BufferizationOpsTdFiles",
254        "//mlir:OpBaseTdFiles",
255    ],
256)
257
258gentbl_filegroup(
259    name = "BufferizationOpsPyGen",
260    tbl_outs = [
261        (
262            [
263                "-gen-python-op-bindings",
264                "-bind-dialect=bufferization",
265            ],
266            "mlir/dialects/_bufferization_ops_gen.py",
267        ),
268    ],
269    tblgen = "//mlir:mlir-tblgen",
270    td_file = "mlir/dialects/BufferizationOps.td",
271    deps = [
272        ":BufferizationOpsPyTdFiles",
273    ],
274)
275
276filegroup(
277    name = "BufferizationOpsPyFiles",
278    srcs = [
279        "mlir/dialects/_bufferization_ops_ext.py",
280        "mlir/dialects/bufferization.py",
281        ":BufferizationOpsPyGen",
282    ],
283)
284
285##---------------------------------------------------------------------------##
286# Complex dialect.
287##---------------------------------------------------------------------------##
288
289td_library(
290    name = "ComplexOpsPyTdFiles",
291    srcs = [
292        "//mlir:include/mlir/Bindings/Python/Attributes.td",
293    ],
294    includes = ["../include"],
295    deps = [
296        "//mlir:ComplexOpsTdFiles",
297        "//mlir:OpBaseTdFiles",
298    ],
299)
300
301gentbl_filegroup(
302    name = "ComplexOpsPyGen",
303    tbl_outs = [
304        (
305            [
306                "-gen-python-op-bindings",
307                "-bind-dialect=complex",
308            ],
309            "mlir/dialects/_complex_ops_gen.py",
310        ),
311    ],
312    tblgen = "//mlir:mlir-tblgen",
313    td_file = "mlir/dialects/ComplexOps.td",
314    deps = [
315        ":ComplexOpsPyTdFiles",
316    ],
317)
318
319filegroup(
320    name = "ComplexOpsPyFiles",
321    srcs = [
322        "mlir/dialects/complex.py",
323        ":ComplexOpsPyGen",
324    ],
325)
326
327##---------------------------------------------------------------------------##
328# ControlFlow dialect.
329##---------------------------------------------------------------------------##
330
331td_library(
332    name = "ControlFlowOpsPyTdFiles",
333    srcs = [
334        "//mlir:include/mlir/Bindings/Python/Attributes.td",
335    ],
336    deps = [
337        "//mlir:ControlFlowOpsTdFiles",
338        "//mlir:OpBaseTdFiles",
339    ],
340)
341
342gentbl_filegroup(
343    name = "ControlFlowOpsPyGen",
344    tbl_outs = [
345        (
346            [
347                "-gen-python-op-bindings",
348                "-bind-dialect=cf",
349            ],
350            "mlir/dialects/_cf_ops_gen.py",
351        ),
352    ],
353    tblgen = "//mlir:mlir-tblgen",
354    td_file = "mlir/dialects/ControlFlowOps.td",
355    deps = [
356        ":ControlFlowOpsPyTdFiles",
357    ],
358)
359
360filegroup(
361    name = "ControlFlowOpsPyFiles",
362    srcs = [
363        "mlir/dialects/cf.py",
364        ":ControlFlowOpsPyGen",
365    ],
366)
367
368##---------------------------------------------------------------------------##
369# Math dialect.
370##---------------------------------------------------------------------------##
371
372td_library(
373    name = "MathOpsPyTdFiles",
374    srcs = [
375        "//mlir:include/mlir/Bindings/Python/Attributes.td",
376    ],
377    includes = ["../include"],
378    deps = [
379        "//mlir:MathOpsTdFiles",
380        "//mlir:OpBaseTdFiles",
381    ],
382)
383
384gentbl_filegroup(
385    name = "MathOpsPyGen",
386    tbl_outs = [
387        (
388            [
389                "-gen-python-op-bindings",
390                "-bind-dialect=math",
391            ],
392            "mlir/dialects/_math_ops_gen.py",
393        ),
394    ],
395    tblgen = "//mlir:mlir-tblgen",
396    td_file = "mlir/dialects/MathOps.td",
397    deps = [
398        ":MathOpsPyTdFiles",
399    ],
400)
401
402filegroup(
403    name = "MathOpsPyFiles",
404    srcs = [
405        "mlir/dialects/math.py",
406        ":MathOpsPyGen",
407    ],
408)
409
410##---------------------------------------------------------------------------##
411# MemRef dialect.
412##---------------------------------------------------------------------------##
413
414td_library(
415    name = "MemRefOpsPyTdFiles",
416    srcs = [
417        "//mlir:include/mlir/Bindings/Python/Attributes.td",
418    ],
419    includes = ["../include"],
420    deps = [
421        "//mlir:MemRefOpsTdFiles",
422        "//mlir:OpBaseTdFiles",
423    ],
424)
425
426gentbl_filegroup(
427    name = "MemRefOpsPyGen",
428    tbl_outs = [
429        (
430            [
431                "-gen-python-op-bindings",
432                "-bind-dialect=memref",
433            ],
434            "mlir/dialects/_memref_ops_gen.py",
435        ),
436    ],
437    tblgen = "//mlir:mlir-tblgen",
438    td_file = "mlir/dialects/MemRefOps.td",
439    deps = [
440        ":MemRefOpsPyTdFiles",
441    ],
442)
443
444filegroup(
445    name = "MemRefOpsPyFiles",
446    srcs = [
447        "mlir/dialects/_memref_ops_ext.py",
448        "mlir/dialects/memref.py",
449        ":MemRefOpsPyGen",
450    ],
451)
452
453##---------------------------------------------------------------------------##
454# MLProgram dialect.
455##---------------------------------------------------------------------------##
456
457td_library(
458    name = "MLProgramOpsPyTdFiles",
459    srcs = [
460        "//mlir:include/mlir/Bindings/Python/Attributes.td",
461    ],
462    includes = ["../include"],
463    deps = [
464        "//mlir:MLProgramOpsTdFiles",
465        "//mlir:OpBaseTdFiles",
466    ],
467)
468
469gentbl_filegroup(
470    name = "MLProgramOpsPyGen",
471    tbl_outs = [
472        (
473            [
474                "-gen-python-op-bindings",
475                "-bind-dialect=ml_program",
476            ],
477            "mlir/dialects/_ml_program_ops_gen.py",
478        ),
479    ],
480    tblgen = "//mlir:mlir-tblgen",
481    td_file = "mlir/dialects/MLProgramOps.td",
482    deps = [
483        ":MLProgramOpsPyTdFiles",
484    ],
485)
486
487filegroup(
488    name = "MLProgramOpsPyFiles",
489    srcs = [
490        "mlir/dialects/_ml_program_ops_ext.py",
491        "mlir/dialects/ml_program.py",
492        ":MLProgramOpsPyGen",
493    ],
494)
495
496##---------------------------------------------------------------------------##
497# PDL dialect.
498##---------------------------------------------------------------------------##
499
500td_library(
501    name = "PDLPyTdFiles",
502    srcs = [
503        "//mlir:include/mlir/Bindings/Python/Attributes.td",
504    ],
505    includes = ["../include"],
506    deps = [
507        "//mlir:OpBaseTdFiles",
508        "//mlir:PDLDialectTdFiles",
509    ],
510)
511
512gentbl_filegroup(
513    name = "PDLPyGen",
514    tbl_outs = [
515        (
516            [
517                "-gen-python-op-bindings",
518                "-bind-dialect=pdl",
519            ],
520            "mlir/dialects/_pdl_ops_gen.py",
521        ),
522    ],
523    tblgen = "//mlir:mlir-tblgen",
524    td_file = "mlir/dialects/PDLOps.td",
525    deps = [
526        ":PDLPyTdFiles",
527    ],
528)
529
530filegroup(
531    name = "PDLPyIFiles",
532    srcs = [
533        "mlir/_mlir_libs/_mlir/dialects/pdl.pyi",
534    ],
535)
536
537filegroup(
538    name = "PDLPyFiles",
539    srcs = [
540        "mlir/dialects/_pdl_ops_ext.py",
541        "mlir/dialects/pdl.py",
542        ":PDLPyGen",
543    ],
544)
545
546
547##---------------------------------------------------------------------------##
548# PythonTest dialect.
549##---------------------------------------------------------------------------##
550
551td_library(
552    name = "PythonTestPyTdFiles",
553    srcs = [
554        "//mlir:include/mlir/Bindings/Python/Attributes.td",
555    ],
556    deps = [
557        "//mlir:InferTypeOpInterfaceTdFiles",
558        "//mlir:OpBaseTdFiles",
559    ],
560)
561
562gentbl_filegroup(
563    name = "PythonTestPyGen",
564    tbl_outs = [
565        (
566            [
567                "-gen-python-op-bindings",
568                "-bind-dialect=python_test",
569            ],
570            "mlir/dialects/_python_test_ops_gen.py",
571        ),
572    ],
573    tblgen = "//mlir:mlir-tblgen",
574    td_file = "//mlir/test/python:python_test_ops.td",
575    deps = [
576        ":PythonTestPyTdFiles",
577    ],
578)
579
580filegroup(
581    name = "PythonTestPyFiles",
582    srcs = [
583        "mlir/dialects/python_test.py",
584        ":PythonTestPyGen",
585    ],
586)
587
588##---------------------------------------------------------------------------##
589# Quant dialect.
590##---------------------------------------------------------------------------##
591
592filegroup(
593    name = "QuantPyIFiles",
594    srcs = [
595        "mlir/_mlir_libs/_mlir/dialects/quant.pyi",
596    ],
597)
598
599filegroup(
600    name = "QuantPyFiles",
601    srcs = [
602        "mlir/dialects/quant.py",
603    ],
604)
605
606##---------------------------------------------------------------------------##
607# SCF dialect.
608##---------------------------------------------------------------------------##
609
610td_library(
611    name = "SCFPyTdFiles",
612    srcs = [
613        "//mlir:include/mlir/Bindings/Python/Attributes.td",
614    ],
615    includes = ["../include"],
616    deps = [
617        "//mlir:OpBaseTdFiles",
618        "//mlir:SCFTdFiles",
619    ],
620)
621
622gentbl_filegroup(
623    name = "SCFPyGen",
624    tbl_outs = [
625        (
626            [
627                "-gen-python-op-bindings",
628                "-bind-dialect=scf",
629            ],
630            "mlir/dialects/_scf_ops_gen.py",
631        ),
632    ],
633    tblgen = "//mlir:mlir-tblgen",
634    td_file = "mlir/dialects/SCFOps.td",
635    deps = [
636        ":SCFPyTdFiles",
637    ],
638)
639
640filegroup(
641    name = "SCFPyFiles",
642    srcs = [
643        "mlir/dialects/_scf_ops_ext.py",
644        "mlir/dialects/scf.py",
645        ":SCFPyGen",
646    ],
647)
648
649##---------------------------------------------------------------------------##
650# Shape dialect.
651##---------------------------------------------------------------------------##
652
653td_library(
654    name = "ShapeOpsPyTdFiles",
655    srcs = [
656        "//mlir:include/mlir/Bindings/Python/Attributes.td",
657    ],
658    includes = ["../include"],
659    deps = [
660        "//mlir:OpBaseTdFiles",
661        "//mlir:ShapeOpsTdFiles",
662    ],
663)
664
665gentbl_filegroup(
666    name = "ShapeOpsPyGen",
667    tbl_outs = [
668        (
669            [
670                "-gen-python-op-bindings",
671                "-bind-dialect=shape",
672            ],
673            "mlir/dialects/_shape_ops_gen.py",
674        ),
675    ],
676    tblgen = "//mlir:mlir-tblgen",
677    td_file = "mlir/dialects/ShapeOps.td",
678    deps = [
679        ":ShapeOpsPyTdFiles",
680    ],
681)
682
683filegroup(
684    name = "ShapeOpsPyFiles",
685    srcs = [
686        "mlir/dialects/shape.py",
687        ":ShapeOpsPyGen",
688    ],
689)
690
691##---------------------------------------------------------------------------##
692# Func dialect.
693##---------------------------------------------------------------------------##
694
695td_library(
696    name = "FuncPyTdFiles",
697    srcs = [
698        "//mlir:include/mlir/Bindings/Python/Attributes.td",
699    ],
700    deps = [
701        "//mlir:FuncTdFiles",
702        "//mlir:OpBaseTdFiles",
703    ],
704)
705
706gentbl_filegroup(
707    name = "FuncPyGen",
708    tbl_outs = [
709        (
710            [
711                "-gen-python-op-bindings",
712                "-bind-dialect=func",
713            ],
714            "mlir/dialects/_func_ops_gen.py",
715        ),
716    ],
717    tblgen = "//mlir:mlir-tblgen",
718    td_file = "mlir/dialects/FuncOps.td",
719    deps = [
720        ":FuncPyTdFiles",
721    ],
722)
723
724filegroup(
725    name = "FuncPyFiles",
726    srcs = [
727        "mlir/dialects/_func_ops_ext.py",
728        "mlir/dialects/func.py",
729        ":FuncPyGen",
730    ],
731)
732
733##---------------------------------------------------------------------------##
734# SparseTensor dialect.
735##---------------------------------------------------------------------------##
736
737td_library(
738    name = "SparseTensorOpsPyTdFiles",
739    srcs = [
740        "//mlir:include/mlir/Bindings/Python/Attributes.td",
741    ],
742    deps = [
743        "//mlir:OpBaseTdFiles",
744        "//mlir:SparseTensorTdFiles",
745    ],
746)
747
748gentbl_filegroup(
749    name = "SparseTensorOpsPyGen",
750    tbl_outs = [
751        (
752            [
753                "-gen-python-op-bindings",
754                "-bind-dialect=sparse_tensor",
755            ],
756            "mlir/dialects/_sparse_tensor_ops_gen.py",
757        ),
758    ],
759    tblgen = "//mlir:mlir-tblgen",
760    td_file = "mlir/dialects/SparseTensorOps.td",
761    deps = [
762        ":SparseTensorOpsPyTdFiles",
763    ],
764)
765
766filegroup(
767    name = "SparseTensorOpsPyFiles",
768    srcs = [
769        "mlir/dialects/sparse_tensor.py",
770        ":SparseTensorOpsPyGen",
771    ],
772)
773
774##---------------------------------------------------------------------------##
775# Tensor dialect.
776##---------------------------------------------------------------------------##
777
778td_library(
779    name = "TensorOpsPyTdFiles",
780    srcs = [
781        "//mlir:include/mlir/Bindings/Python/Attributes.td",
782    ],
783    deps = [
784        "//mlir:OpBaseTdFiles",
785        "//mlir:TensorOpsTdFiles",
786    ],
787)
788
789gentbl_filegroup(
790    name = "TensorOpsPyGen",
791    tbl_outs = [
792        (
793            [
794                "-gen-python-op-bindings",
795                "-bind-dialect=tensor",
796            ],
797            "mlir/dialects/_tensor_ops_gen.py",
798        ),
799    ],
800    tblgen = "//mlir:mlir-tblgen",
801    td_file = "mlir/dialects/TensorOps.td",
802    deps = [
803        ":TensorOpsPyTdFiles",
804    ],
805)
806
807filegroup(
808    name = "TensorOpsPyFiles",
809    srcs = [
810        "mlir/dialects/tensor.py",
811        ":TensorOpsPyGen",
812    ],
813)
814
815##---------------------------------------------------------------------------##
816# Tosa dialect.
817##---------------------------------------------------------------------------##
818
819td_library(
820    name = "TosaOpsPyTdFiles",
821    srcs = [
822        "//mlir:include/mlir/Bindings/Python/Attributes.td",
823    ],
824    deps = [
825        "//mlir:OpBaseTdFiles",
826        "//mlir:TosaDialectTdFiles",
827    ],
828)
829
830gentbl_filegroup(
831    name = "TosaOpsPyGen",
832    tbl_outs = [
833        (
834            [
835                "-gen-python-op-bindings",
836                "-bind-dialect=tosa",
837            ],
838            "mlir/dialects/_tosa_ops_gen.py",
839        ),
840    ],
841    tblgen = "//mlir:mlir-tblgen",
842    td_file = "mlir/dialects/TosaOps.td",
843    deps = [
844        ":TosaOpsPyTdFiles",
845    ],
846)
847
848filegroup(
849    name = "TosaOpsPyFiles",
850    srcs = [
851        "mlir/dialects/tosa.py",
852        ":TosaOpsPyGen",
853    ],
854)
855
856##---------------------------------------------------------------------------##
857# Transform dialect and extensions.
858##---------------------------------------------------------------------------##
859
860td_library(
861    name = "TransformOpsPyTdFiles",
862    srcs = [
863        "//mlir:include/mlir/Bindings/Python/Attributes.td",
864    ],
865    deps = [
866        "//mlir:OpBaseTdFiles",
867        "//mlir:TransformDialectTdFiles",
868    ],
869)
870
871gentbl_filegroup(
872    name = "TransformOpsPyGen",
873    tbl_outs = [
874        (
875            [
876                "-gen-python-op-bindings",
877                "-bind-dialect=transform",
878            ],
879            "mlir/dialects/_transform_ops_gen.py",
880        ),
881    ],
882    tblgen = "//mlir:mlir-tblgen",
883    td_file = "mlir/dialects/TransformOps.td",
884    deps = [
885        ":TransformOpsPyTdFiles",
886    ],
887)
888
889gentbl_filegroup(
890    name = "StructuredTransformOpsPyGen",
891    tbl_outs = [
892        (
893            [
894                "-gen-python-op-bindings",
895                "-bind-dialect=transform",
896                "-dialect-extension=structured_transform",
897            ],
898            "mlir/dialects/_structured_transform_ops_gen.py",
899        ),
900    ],
901    tblgen = "//mlir:mlir-tblgen",
902    td_file = "mlir/dialects/LinalgStructuredTransformOps.td",
903    deps = [
904        ":TransformOpsPyTdFiles",
905        "//mlir:LinalgTransformOpsTdFiles",
906    ],
907)
908
909gentbl_filegroup(
910    name = "LoopTransformOpsPyGen",
911    tbl_outs = [
912        (
913            [
914                "-gen-python-op-bindings",
915                "-bind-dialect=transform",
916                "-dialect-extension=loop_transform",
917            ],
918            "mlir/dialects/_loop_transform_ops_gen.py",
919        ),
920    ],
921    tblgen = "//mlir:mlir-tblgen",
922    td_file = "mlir/dialects/SCFLoopTransformOps.td",
923    deps = [
924        ":TransformOpsPyTdFiles",
925        "//mlir:SCFTransformOpsTdFiles",
926    ],
927)
928
929filegroup(
930    name = "TransformOpsPyFiles",
931    srcs = [
932        "mlir/dialects/_loop_transform_ops_ext.py",
933        "mlir/dialects/_structured_transform_ops_ext.py",
934        "mlir/dialects/_transform_ops_ext.py",
935        ":LoopTransformOpsPyGen",
936        ":StructuredTransformOpsPyGen",
937        ":TransformOpsPyGen",
938    ],
939)
940
941filegroup(
942    name = "TransformOpsPackagePyFiles",
943    srcs = glob(["mlir/dialects/transform/*.py"]),
944)
945
946##---------------------------------------------------------------------------##
947# Vector dialect.
948##---------------------------------------------------------------------------##
949
950td_library(
951    name = "VectorOpsPyTdFiles",
952    srcs = [
953        "//mlir:include/mlir/Bindings/Python/Attributes.td",
954    ],
955    includes = ["../include"],
956    deps = [
957        "//mlir:OpBaseTdFiles",
958        "//mlir:VectorOpsTdFiles",
959    ],
960)
961
962gentbl_filegroup(
963    name = "VectorOpsPyGen",
964    tbl_outs = [
965        (
966            [
967                "-gen-python-op-bindings",
968                "-bind-dialect=vector",
969            ],
970            "mlir/dialects/_vector_ops_gen.py",
971        ),
972    ],
973    tblgen = "//mlir:mlir-tblgen",
974    td_file = "mlir/dialects/VectorOps.td",
975    deps = [
976        ":VectorOpsPyTdFiles",
977    ],
978)
979
980filegroup(
981    name = "VectorOpsPyFiles",
982    srcs = [
983        "mlir/dialects/vector.py",
984        ":VectorOpsPyGen",
985    ],
986)
987