xref: /llvm-project/utils/bazel/llvm-project-overlay/mlir/python/BUILD.bazel (revision eac1e13addb147712aa1772df932111feb5c4de1)
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(default_visibility = ["//visibility:public"])
14
15licenses(["notice"])
16
17##---------------------------------------------------------------------------##
18# Core IR modules.
19##---------------------------------------------------------------------------##
20
21filegroup(
22    name = "DialectCorePyFiles",
23    srcs = [
24        "mlir/dialects/_ods_common.py",
25    ],
26)
27
28filegroup(
29    name = "ExecutionEnginePyFiles",
30    srcs = [
31        "mlir/execution_engine.py",
32    ],
33)
34
35filegroup(
36    name = "ExecutionEnginePyIFiles",
37    srcs = [
38        "mlir/_mlir_libs/_mlirExecutionEngine.pyi",
39    ],
40)
41
42filegroup(
43    name = "IRPyFiles",
44    srcs = [
45        "mlir/ir.py",
46    ],
47)
48
49filegroup(
50    name = "ExtrasPyFiles",
51    srcs = glob([
52        "mlir/extras/*.py",
53    ]),
54)
55
56filegroup(
57    name = "IRPyIFiles",
58    srcs = [
59        "mlir/_mlir_libs/_mlir/__init__.pyi",
60        "mlir/_mlir_libs/_mlir/ir.pyi",
61    ],
62)
63
64filegroup(
65    name = "MlirLibsPyFiles",
66    srcs = [
67        "mlir/_mlir_libs/__init__.py",
68    ],
69)
70
71filegroup(
72    name = "PassManagerPyFiles",
73    srcs = [
74        "mlir/passmanager.py",
75    ],
76)
77
78filegroup(
79    name = "PassManagerPyIFiles",
80    srcs = [
81        "mlir/_mlir_libs/_mlir/passmanager.pyi",
82    ],
83)
84
85filegroup(
86    name = "RewritePyFiles",
87    srcs = [
88        "mlir/rewrite.py",
89    ],
90)
91
92filegroup(
93    name = "RuntimePyFiles",
94    srcs = glob([
95        "mlir/runtime/*.py",
96    ]),
97)
98
99##---------------------------------------------------------------------------##
100# Affine dialect.
101##---------------------------------------------------------------------------##
102
103td_library(
104    name = "AffineOpsPyTdFiles",
105    srcs = [
106        "mlir/dialects/AffineOps.td",
107    ],
108    deps = [
109        "//mlir:AffineOpsTdFiles",
110        "//mlir:FunctionInterfacesTdFiles",
111        "//mlir:OpBaseTdFiles",
112    ],
113)
114
115gentbl_filegroup(
116    name = "AffineOpsPyGen",
117    tbl_outs = [
118        (
119            [
120                "-gen-python-op-bindings",
121                "-bind-dialect=affine",
122            ],
123            "mlir/dialects/_affine_ops_gen.py",
124        ),
125    ],
126    tblgen = "//mlir:mlir-tblgen",
127    td_file = "mlir/dialects/AffineOps.td",
128    deps = [
129        ":AffineOpsPyTdFiles",
130    ],
131)
132
133filegroup(
134    name = "AffineOpsPyFiles",
135    srcs = [
136        "mlir/dialects/affine.py",
137        ":AffineOpsPyGen",
138    ],
139)
140
141##---------------------------------------------------------------------------##
142# Builtin dialect.
143##---------------------------------------------------------------------------##
144
145td_library(
146    name = "BuiltinOpsPyTdFiles",
147    srcs = [
148        "mlir/dialects/BuiltinOps.td",
149    ],
150    deps = [
151        "//mlir:BuiltinDialectTdFiles",
152        "//mlir:FunctionInterfacesTdFiles",
153        "//mlir:OpBaseTdFiles",
154    ],
155)
156
157gentbl_filegroup(
158    name = "BuiltinOpsPyGen",
159    tbl_outs = [
160        (
161            [
162                "-gen-python-op-bindings",
163                "-bind-dialect=builtin",
164            ],
165            "mlir/dialects/_builtin_ops_gen.py",
166        ),
167    ],
168    tblgen = "//mlir:mlir-tblgen",
169    td_file = "mlir/dialects/BuiltinOps.td",
170    deps = [
171        ":BuiltinOpsPyTdFiles",
172    ],
173)
174
175filegroup(
176    name = "BuiltinOpsPyFiles",
177    srcs = [
178        "mlir/dialects/builtin.py",
179        ":BuiltinOpsPyGen",
180    ],
181)
182
183##---------------------------------------------------------------------------##
184# AMDGPU dialect.
185##---------------------------------------------------------------------------##
186
187td_library(
188    name = "AMDGPUOpsPyTdFiles",
189    srcs = [],
190    includes = ["../include"],
191    deps = [
192        "//mlir:AMDGPUTdFiles",
193        "//mlir:OpBaseTdFiles",
194    ],
195)
196
197gentbl_filegroup(
198    name = "AMDGPUOpsPyGen",
199    tbl_outs = [
200        (
201            [
202                "-gen-python-enum-bindings",
203                "-bind-dialect=amdgpu",
204            ],
205            "mlir/dialects/_amdgpu_enum_gen.py",
206        ),
207        (
208            [
209                "-gen-python-op-bindings",
210                "-bind-dialect=amdgpu",
211            ],
212            "mlir/dialects/_amdgpu_ops_gen.py",
213        ),
214    ],
215    tblgen = "//mlir:mlir-tblgen",
216    td_file = "mlir/dialects/AMDGPUOps.td",
217    deps = [
218        ":AMDGPUOpsPyTdFiles",
219    ],
220)
221
222filegroup(
223    name = "AMDGPUOpsPyFiles",
224    srcs = [
225        "mlir/dialects/amdgpu.py",
226        ":AMDGPUOpsPyGen",
227    ],
228)
229
230##---------------------------------------------------------------------------##
231# Linalg dialect.
232##---------------------------------------------------------------------------##
233
234td_library(
235    name = "LinalgOpsPyTdFiles",
236    srcs = [
237        "mlir/dialects/LinalgOps.td",
238    ],
239    deps = [
240        "//mlir:LinalgOpsTdFiles",
241        "//mlir:LinalgStructuredOpsTdFiles",
242        "//mlir:OpBaseTdFiles",
243    ],
244)
245
246gentbl_filegroup(
247    name = "LinalgOpsPyGen",
248    tbl_outs = [
249        (
250            [
251                "-gen-python-enum-bindings",
252                "-bind-dialect=linalg",
253            ],
254            "mlir/dialects/_linalg_enum_gen.py",
255        ),
256        (
257            [
258                "-gen-python-op-bindings",
259                "-bind-dialect=linalg",
260            ],
261            "mlir/dialects/_linalg_ops_gen.py",
262        ),
263    ],
264    tblgen = "//mlir:mlir-tblgen",
265    td_file = "mlir/dialects/LinalgOps.td",
266    deps = [
267        ":LinalgOpsPyTdFiles",
268    ],
269)
270
271filegroup(
272    name = "LinalgOpsPyFiles",
273    srcs = [
274        ":LinalgOpsPyGen",
275    ],
276)
277
278filegroup(
279    name = "LinalgOpsPackagePyFiles",
280    srcs = glob(["mlir/dialects/linalg/*.py"]),
281)
282
283filegroup(
284    name = "LinalgOpsPackageOpDSLPyFiles",
285    srcs = glob(["mlir/dialects/linalg/opdsl/*.py"]),
286)
287
288filegroup(
289    name = "LinalgOpsPackageOpDSLLangPyFiles",
290    srcs = glob(["mlir/dialects/linalg/opdsl/lang/*.py"]),
291)
292
293filegroup(
294    name = "LinalgOpsPackageOpDSLOpsPyFiles",
295    srcs = glob(["mlir/dialects/linalg/opdsl/ops/*.py"]),
296)
297
298filegroup(
299    name = "LinalgOpsPackagePassesPyFiles",
300    srcs = glob(["mlir/dialects/linalg/passes/*.py"]),
301)
302
303##---------------------------------------------------------------------------##
304# LLVM dialect.
305##---------------------------------------------------------------------------##
306
307gentbl_filegroup(
308    name = "LLVMOpsPyGen",
309    tbl_outs = [
310        (
311            [
312                "-gen-python-enum-bindings",
313                "-bind-dialect=llvm",
314            ],
315            "mlir/dialects/_llvm_enum_gen.py",
316        ),
317        (
318            [
319                "-gen-python-op-bindings",
320                "-bind-dialect=llvm",
321            ],
322            "mlir/dialects/_llvm_ops_gen.py",
323        ),
324    ],
325    tblgen = "//mlir:mlir-tblgen",
326    td_file = "mlir/dialects/LLVMOps.td",
327    deps = [
328        "//mlir:LLVMOpsTdFiles",
329        "//mlir:OpBaseTdFiles",
330    ],
331)
332
333filegroup(
334    name = "LLVMOpsPyFiles",
335    srcs = [
336        "mlir/dialects/llvm.py",
337        ":LLVMOpsPyGen",
338    ],
339)
340
341##---------------------------------------------------------------------------##
342# Async dialect.
343##---------------------------------------------------------------------------##
344
345gentbl_filegroup(
346    name = "AsyncOpsPyGen",
347    tbl_outs = [
348        (
349            [
350                "-gen-python-op-bindings",
351                "-bind-dialect=async",
352            ],
353            "mlir/dialects/_async_ops_gen.py",
354        ),
355    ],
356    tblgen = "//mlir:mlir-tblgen",
357    td_file = "mlir/dialects/AsyncOps.td",
358    deps = [
359        "//mlir:AsyncOpsTdFiles",
360        "//mlir:OpBaseTdFiles",
361    ],
362)
363
364filegroup(
365    name = "AsyncOpsPyFiles",
366    srcs = [
367        ":AsyncOpsPyGen",
368    ],
369)
370
371filegroup(
372    name = "AsyncOpsPackagePyFiles",
373    srcs = glob(["mlir/dialects/async_dialect/*.py"]),
374)
375
376filegroup(
377    name = "AsyncOpsPackagePassesPyFiles",
378    srcs = glob(["mlir/dialects/async_dialect/passes/*.py"]),
379)
380
381##---------------------------------------------------------------------------##
382# Arith dialect.
383##---------------------------------------------------------------------------##
384
385gentbl_filegroup(
386    name = "ArithOpsPyGen",
387    tbl_outs = [
388        (
389            [
390                "-gen-python-enum-bindings",
391                "-bind-dialect=arith",
392            ],
393            "mlir/dialects/_arith_enum_gen.py",
394        ),
395        (
396            [
397                "-gen-python-op-bindings",
398                "-bind-dialect=arith",
399            ],
400            "mlir/dialects/_arith_ops_gen.py",
401        ),
402    ],
403    tblgen = "//mlir:mlir-tblgen",
404    td_file = "mlir/dialects/ArithOps.td",
405    deps = [
406        "//mlir:ArithOpsTdFiles",
407        "//mlir:OpBaseTdFiles",
408    ],
409)
410
411filegroup(
412    name = "ArithOpsPyFiles",
413    srcs = [
414        "mlir/dialects/arith.py",
415        ":ArithOpsPyGen",
416    ],
417)
418
419##---------------------------------------------------------------------------##
420# Bufferization dialect.
421##---------------------------------------------------------------------------##
422
423td_library(
424    name = "BufferizationOpsPyTdFiles",
425    srcs = [],
426    includes = ["../include"],
427    deps = [
428        "//mlir:BufferizableOpInterfaceTdFiles",
429        "//mlir:BufferizationEnumsTdFiles",
430        "//mlir:BufferizationOpsTdFiles",
431        "//mlir:OpBaseTdFiles",
432    ],
433)
434
435gentbl_filegroup(
436    name = "BufferizationEnumPyGen",
437    tbl_outs = [
438        (
439            [
440                "-gen-python-enum-bindings",
441                "-bind-dialect=bufferization",
442            ],
443            "mlir/dialects/_bufferization_enum_gen.py",
444        ),
445    ],
446    tblgen = "//mlir:mlir-tblgen",
447    td_file = "mlir/dialects/BufferizationEnums.td",
448    deps = [
449        ":BufferizationOpsPyTdFiles",
450    ],
451)
452
453gentbl_filegroup(
454    name = "BufferizationOpsPyGen",
455    tbl_outs = [
456        (
457            [
458                "-gen-python-op-bindings",
459                "-bind-dialect=bufferization",
460            ],
461            "mlir/dialects/_bufferization_ops_gen.py",
462        ),
463    ],
464    tblgen = "//mlir:mlir-tblgen",
465    td_file = "mlir/dialects/BufferizationOps.td",
466    deps = [
467        ":BufferizationOpsPyTdFiles",
468    ],
469)
470
471filegroup(
472    name = "BufferizationOpsPyFiles",
473    srcs = [
474        "mlir/dialects/bufferization.py",
475        ":BufferizationEnumPyGen",
476        ":BufferizationOpsPyGen",
477    ],
478)
479
480##---------------------------------------------------------------------------##
481# Complex dialect.
482##---------------------------------------------------------------------------##
483
484gentbl_filegroup(
485    name = "ComplexOpsPyGen",
486    tbl_outs = [
487        (
488            [
489                "-gen-python-op-bindings",
490                "-bind-dialect=complex",
491            ],
492            "mlir/dialects/_complex_ops_gen.py",
493        ),
494    ],
495    tblgen = "//mlir:mlir-tblgen",
496    td_file = "mlir/dialects/ComplexOps.td",
497    deps = [
498        "//mlir:ComplexOpsTdFiles",
499        "//mlir:OpBaseTdFiles",
500    ],
501)
502
503filegroup(
504    name = "ComplexOpsPyFiles",
505    srcs = [
506        "mlir/dialects/complex.py",
507        ":ComplexOpsPyGen",
508    ],
509)
510
511##---------------------------------------------------------------------------##
512# ControlFlow dialect.
513##---------------------------------------------------------------------------##
514
515gentbl_filegroup(
516    name = "ControlFlowOpsPyGen",
517    tbl_outs = [
518        (
519            [
520                "-gen-python-op-bindings",
521                "-bind-dialect=cf",
522            ],
523            "mlir/dialects/_cf_ops_gen.py",
524        ),
525    ],
526    tblgen = "//mlir:mlir-tblgen",
527    td_file = "mlir/dialects/ControlFlowOps.td",
528    deps = [
529        "//mlir:ControlFlowOpsTdFiles",
530        "//mlir:OpBaseTdFiles",
531    ],
532)
533
534filegroup(
535    name = "ControlFlowOpsPyFiles",
536    srcs = [
537        "mlir/dialects/cf.py",
538        ":ControlFlowOpsPyGen",
539    ],
540)
541
542##---------------------------------------------------------------------------##
543# EmitC dialect.
544##---------------------------------------------------------------------------##
545
546gentbl_filegroup(
547    name = "EmitCPyGen",
548    tbl_outs = [
549        (
550            [
551                "-gen-python-op-bindings",
552                "-bind-dialect=emitc",
553            ],
554            "mlir/dialects/_emitc_ops_gen.py",
555        ),
556    ],
557    tblgen = "//mlir:mlir-tblgen",
558    td_file = "mlir/dialects/EmitC.td",
559    deps = [
560        "//mlir:EmitCTdFiles",
561    ],
562)
563
564filegroup(
565    name = "EmitCPyFiles",
566    srcs = [
567        "mlir/dialects/emitc.py",
568        ":EmitCPyGen",
569    ],
570)
571
572##---------------------------------------------------------------------------##
573# Index dialect.
574##---------------------------------------------------------------------------##
575
576gentbl_filegroup(
577    name = "IndexOpsPyGen",
578    tbl_outs = [
579        (
580            [
581                "-gen-python-enum-bindings",
582                "-bind-dialect=index",
583            ],
584            "mlir/dialects/_index_enum_gen.py",
585        ),
586        (
587            [
588                "-gen-python-op-bindings",
589                "-bind-dialect=index",
590            ],
591            "mlir/dialects/_index_ops_gen.py",
592        ),
593    ],
594    tblgen = "//mlir:mlir-tblgen",
595    td_file = "mlir/dialects/IndexOps.td",
596    deps = [
597        "//mlir:IndexOpsTdFiles",
598        "//mlir:OpBaseTdFiles",
599    ],
600)
601
602filegroup(
603    name = "IndexOpsPyFiles",
604    srcs = [
605        "mlir/dialects/index.py",
606        ":IndexOpsPyGen",
607    ],
608)
609
610##---------------------------------------------------------------------------##
611# Math dialect.
612##---------------------------------------------------------------------------##
613
614gentbl_filegroup(
615    name = "MathOpsPyGen",
616    tbl_outs = [
617        (
618            [
619                "-gen-python-op-bindings",
620                "-bind-dialect=math",
621            ],
622            "mlir/dialects/_math_ops_gen.py",
623        ),
624    ],
625    tblgen = "//mlir:mlir-tblgen",
626    td_file = "mlir/dialects/MathOps.td",
627    deps = [
628        "//mlir:MathOpsTdFiles",
629        "//mlir:OpBaseTdFiles",
630    ],
631)
632
633filegroup(
634    name = "MathOpsPyFiles",
635    srcs = [
636        "mlir/dialects/math.py",
637        ":MathOpsPyGen",
638    ],
639)
640
641##---------------------------------------------------------------------------##
642# MemRef dialect.
643##---------------------------------------------------------------------------##
644
645gentbl_filegroup(
646    name = "MemRefOpsPyGen",
647    tbl_outs = [
648        (
649            [
650                "-gen-python-op-bindings",
651                "-bind-dialect=memref",
652            ],
653            "mlir/dialects/_memref_ops_gen.py",
654        ),
655    ],
656    tblgen = "//mlir:mlir-tblgen",
657    td_file = "mlir/dialects/MemRefOps.td",
658    deps = [
659        "//mlir:MemRefOpsTdFiles",
660        "//mlir:OpBaseTdFiles",
661    ],
662)
663
664filegroup(
665    name = "MemRefOpsPyFiles",
666    srcs = [
667        "mlir/dialects/memref.py",
668        ":MemRefOpsPyGen",
669    ],
670)
671
672##---------------------------------------------------------------------------##
673# MLProgram dialect.
674##---------------------------------------------------------------------------##
675
676gentbl_filegroup(
677    name = "MLProgramOpsPyGen",
678    tbl_outs = [
679        (
680            [
681                "-gen-python-op-bindings",
682                "-bind-dialect=ml_program",
683            ],
684            "mlir/dialects/_ml_program_ops_gen.py",
685        ),
686    ],
687    tblgen = "//mlir:mlir-tblgen",
688    td_file = "mlir/dialects/MLProgramOps.td",
689    deps = [
690        "//mlir:MLProgramOpsTdFiles",
691        "//mlir:OpBaseTdFiles",
692    ],
693)
694
695filegroup(
696    name = "MLProgramOpsPyFiles",
697    srcs = [
698        "mlir/dialects/ml_program.py",
699        ":MLProgramOpsPyGen",
700    ],
701)
702
703##---------------------------------------------------------------------------##
704# OpenMP dialect.
705##---------------------------------------------------------------------------##
706
707gentbl_filegroup(
708    name = "OpenMPOpsPyGen",
709    tbl_outs = [
710        (
711            [
712                "-gen-python-op-bindings",
713                "-bind-dialect=omp",
714            ],
715            "mlir/dialects/_omp_ops_gen.py",
716        ),
717    ],
718    tblgen = "//mlir:mlir-tblgen",
719    td_file = "mlir/dialects/OpenMPOps.td",
720    deps = [
721        "//mlir:OpBaseTdFiles",
722        "//mlir:OpenMPOpsTdFiles",
723    ],
724)
725
726filegroup(
727    name = "OpenMPOpsPyFiles",
728    srcs = [
729        "mlir/dialects/openmp.py",
730        ":OpenMPOpsPyGen",
731    ],
732)
733
734##---------------------------------------------------------------------------##
735# PDL dialect.
736##---------------------------------------------------------------------------##
737
738gentbl_filegroup(
739    name = "PDLPyGen",
740    tbl_outs = [
741        (
742            [
743                "-gen-python-op-bindings",
744                "-bind-dialect=pdl",
745            ],
746            "mlir/dialects/_pdl_ops_gen.py",
747        ),
748    ],
749    tblgen = "//mlir:mlir-tblgen",
750    td_file = "mlir/dialects/PDLOps.td",
751    deps = [
752        "//mlir:OpBaseTdFiles",
753        "//mlir:PDLDialectTdFiles",
754    ],
755)
756
757filegroup(
758    name = "PDLPyIFiles",
759    srcs = [
760        "mlir/_mlir_libs/_mlir/dialects/pdl.pyi",
761    ],
762)
763
764filegroup(
765    name = "PDLPyFiles",
766    srcs = [
767        "mlir/dialects/pdl.py",
768        ":PDLPyGen",
769    ],
770)
771
772##---------------------------------------------------------------------------##
773# PythonTest dialect.
774##---------------------------------------------------------------------------##
775
776gentbl_filegroup(
777    name = "PythonTestPyGen",
778    tbl_outs = [
779        (
780            [
781                "-gen-python-op-bindings",
782                "-bind-dialect=python_test",
783            ],
784            "mlir/dialects/_python_test_ops_gen.py",
785        ),
786    ],
787    tblgen = "//mlir:mlir-tblgen",
788    td_file = "//mlir/test/python:python_test_ops.td",
789    deps = [
790        "//mlir:InferTypeOpInterfaceTdFiles",
791        "//mlir:OpBaseTdFiles",
792    ],
793)
794
795filegroup(
796    name = "PythonTestPyFiles",
797    srcs = [
798        "mlir/dialects/python_test.py",
799        ":PythonTestPyGen",
800    ],
801)
802
803##---------------------------------------------------------------------------##
804# Quant dialect.
805##---------------------------------------------------------------------------##
806
807filegroup(
808    name = "QuantPyIFiles",
809    srcs = [
810        "mlir/_mlir_libs/_mlir/dialects/quant.pyi",
811    ],
812)
813
814filegroup(
815    name = "QuantPyFiles",
816    srcs = [
817        "mlir/dialects/quant.py",
818    ],
819)
820
821##---------------------------------------------------------------------------##
822# GPU dialect.
823##---------------------------------------------------------------------------##
824
825td_library(
826    name = "GPUOpsPyTdFiles",
827    srcs = [],
828    includes = ["../include"],
829    deps = [
830        "//mlir:GPUOpsTdFiles",
831        "//mlir:OpBaseTdFiles",
832    ],
833)
834
835gentbl_filegroup(
836    name = "GPUOpsPyGen",
837    tbl_outs = [
838        (
839            [
840                "-gen-python-enum-bindings",
841                "-bind-dialect=gpu",
842            ],
843            "mlir/dialects/_gpu_enum_gen.py",
844        ),
845        (
846            [
847                "-gen-python-op-bindings",
848                "-bind-dialect=gpu",
849            ],
850            "mlir/dialects/_gpu_ops_gen.py",
851        ),
852    ],
853    tblgen = "//mlir:mlir-tblgen",
854    td_file = "mlir/dialects/GPUOps.td",
855    deps = [
856        ":GPUOpsPyTdFiles",
857    ],
858)
859
860filegroup(
861    name = "GPUOpsPyFiles",
862    srcs = [
863        ":GPUOpsPyGen",
864    ],
865)
866
867filegroup(
868    name = "GPUOpsPackagePyFiles",
869    srcs = glob(["mlir/dialects/gpu/*.py"]),
870)
871
872filegroup(
873    name = "GPUOpsPackagePassesPyFiles",
874    srcs = glob(["mlir/dialects/gpu/passes/*.py"]),
875)
876
877##---------------------------------------------------------------------------##
878# NVGPU dialect.
879##---------------------------------------------------------------------------##
880
881td_library(
882    name = "NVGPUOpsPyTdFiles",
883    srcs = [],
884    includes = ["../include"],
885    deps = [
886        "//mlir:NVGPUTdFiles",
887        "//mlir:OpBaseTdFiles",
888    ],
889)
890
891gentbl_filegroup(
892    name = "NVGPUOpsPyGen",
893    tbl_outs = [
894        (
895            [
896                "-gen-python-enum-bindings",
897                "-bind-dialect=nvgpu",
898            ],
899            "mlir/dialects/_nvgpu_enum_gen.py",
900        ),
901        (
902            [
903                "-gen-python-op-bindings",
904                "-bind-dialect=nvgpu",
905            ],
906            "mlir/dialects/_nvgpu_ops_gen.py",
907        ),
908    ],
909    tblgen = "//mlir:mlir-tblgen",
910    td_file = "mlir/dialects/NVGPUOps.td",
911    deps = [
912        ":NVGPUOpsPyTdFiles",
913    ],
914)
915
916filegroup(
917    name = "NVGPUOpsPyFiles",
918    srcs = [
919        "mlir/dialects/nvgpu.py",
920        ":NVGPUOpsPyGen",
921    ],
922)
923
924##---------------------------------------------------------------------------##
925# NVVM dialect.
926##---------------------------------------------------------------------------##
927
928td_library(
929    name = "NVVMOpsPyTdFiles",
930    srcs = [],
931    includes = ["../include"],
932    deps = [
933        "//mlir:NVVMOpsTdFiles",
934        "//mlir:OpBaseTdFiles",
935    ],
936)
937
938gentbl_filegroup(
939    name = "NVVMOpsPyGen",
940    tbl_outs = [
941        (
942            [
943                "-gen-python-enum-bindings",
944                "-bind-dialect=nvvm",
945            ],
946            "mlir/dialects/_nvvm_enum_gen.py",
947        ),
948        (
949            [
950                "-gen-python-op-bindings",
951                "-bind-dialect=nvvm",
952            ],
953            "mlir/dialects/_nvvm_ops_gen.py",
954        ),
955    ],
956    tblgen = "//mlir:mlir-tblgen",
957    td_file = "mlir/dialects/NVVMOps.td",
958    deps = [
959        ":NVVMOpsPyTdFiles",
960    ],
961)
962
963filegroup(
964    name = "NVVMOpsPyFiles",
965    srcs = [
966        "mlir/dialects/nvvm.py",
967        ":NVVMOpsPyGen",
968    ],
969)
970
971##---------------------------------------------------------------------------##
972# ROCDL dialect.
973##---------------------------------------------------------------------------##
974
975td_library(
976    name = "ROCDLOpsPyTdFiles",
977    srcs = [],
978    includes = ["../include"],
979    deps = [
980        "//mlir:OpBaseTdFiles",
981        "//mlir:ROCDLOpsTdFiles",
982    ],
983)
984
985gentbl_filegroup(
986    name = "ROCDLOpsPyGen",
987    tbl_outs = [
988        (
989            [
990                "-gen-python-op-bindings",
991                "-bind-dialect=rocdl",
992            ],
993            "mlir/dialects/_rocdl_ops_gen.py",
994        ),
995    ],
996    tblgen = "//mlir:mlir-tblgen",
997    td_file = "mlir/dialects/ROCDLOps.td",
998    deps = [
999        ":ROCDLOpsPyTdFiles",
1000    ],
1001)
1002
1003filegroup(
1004    name = "ROCDLOpsPyFiles",
1005    srcs = [
1006        "mlir/dialects/rocdl.py",
1007        ":ROCDLOpsPyGen",
1008    ],
1009)
1010
1011##---------------------------------------------------------------------------##
1012# SCF dialect.
1013##---------------------------------------------------------------------------##
1014
1015gentbl_filegroup(
1016    name = "SCFPyGen",
1017    tbl_outs = [
1018        (
1019            [
1020                "-gen-python-op-bindings",
1021                "-bind-dialect=scf",
1022            ],
1023            "mlir/dialects/_scf_ops_gen.py",
1024        ),
1025    ],
1026    tblgen = "//mlir:mlir-tblgen",
1027    td_file = "mlir/dialects/SCFOps.td",
1028    deps = [
1029        "//mlir:OpBaseTdFiles",
1030        "//mlir:SCFTdFiles",
1031    ],
1032)
1033
1034filegroup(
1035    name = "SCFPyFiles",
1036    srcs = [
1037        "mlir/dialects/scf.py",
1038        ":SCFPyGen",
1039    ],
1040)
1041
1042##---------------------------------------------------------------------------##
1043# Shape dialect.
1044##---------------------------------------------------------------------------##
1045
1046gentbl_filegroup(
1047    name = "ShapeOpsPyGen",
1048    tbl_outs = [
1049        (
1050            [
1051                "-gen-python-op-bindings",
1052                "-bind-dialect=shape",
1053            ],
1054            "mlir/dialects/_shape_ops_gen.py",
1055        ),
1056    ],
1057    tblgen = "//mlir:mlir-tblgen",
1058    td_file = "mlir/dialects/ShapeOps.td",
1059    deps = [
1060        "//mlir:OpBaseTdFiles",
1061        "//mlir:ShapeOpsTdFiles",
1062    ],
1063)
1064
1065filegroup(
1066    name = "ShapeOpsPyFiles",
1067    srcs = [
1068        "mlir/dialects/shape.py",
1069        ":ShapeOpsPyGen",
1070    ],
1071)
1072
1073##---------------------------------------------------------------------------##
1074# Func dialect.
1075##---------------------------------------------------------------------------##
1076
1077td_library(
1078    name = "FuncPyTdFiles",
1079    srcs = [
1080    ],
1081    deps = [
1082        "//mlir:FuncTdFiles",
1083        "//mlir:OpBaseTdFiles",
1084    ],
1085)
1086
1087gentbl_filegroup(
1088    name = "FuncPyGen",
1089    tbl_outs = [
1090        (
1091            [
1092                "-gen-python-op-bindings",
1093                "-bind-dialect=func",
1094            ],
1095            "mlir/dialects/_func_ops_gen.py",
1096        ),
1097    ],
1098    tblgen = "//mlir:mlir-tblgen",
1099    td_file = "mlir/dialects/FuncOps.td",
1100    deps = [
1101        "//mlir:FuncTdFiles",
1102        "//mlir:OpBaseTdFiles",
1103    ],
1104)
1105
1106filegroup(
1107    name = "FuncPyFiles",
1108    srcs = [
1109        "mlir/dialects/func.py",
1110        ":FuncPyGen",
1111    ],
1112)
1113
1114##---------------------------------------------------------------------------##
1115# SparseTensor dialect.
1116##---------------------------------------------------------------------------##
1117
1118td_library(
1119    name = "SparseTensorOpsPyTdFiles",
1120    srcs = [
1121    ],
1122    deps = [
1123        "//mlir:OpBaseTdFiles",
1124        "//mlir:SparseTensorTdFiles",
1125    ],
1126)
1127
1128gentbl_filegroup(
1129    name = "SparseTensorEnumPyGen",
1130    tbl_outs = [
1131        (
1132            [
1133                "-gen-python-enum-bindings",
1134                "-bind-dialect=sparse_tensor",
1135            ],
1136            "mlir/dialects/_sparse_tensor_enum_gen.py",
1137        ),
1138    ],
1139    tblgen = "//mlir:mlir-tblgen",
1140    td_file = "mlir/dialects/SparseTensorAttrDefs.td",
1141    deps = [
1142        ":SparseTensorOpsPyTdFiles",
1143    ],
1144)
1145
1146gentbl_filegroup(
1147    name = "SparseTensorOpsPyGen",
1148    tbl_outs = [
1149        (
1150            [
1151                "-gen-python-op-bindings",
1152                "-bind-dialect=sparse_tensor",
1153            ],
1154            "mlir/dialects/_sparse_tensor_ops_gen.py",
1155        ),
1156    ],
1157    tblgen = "//mlir:mlir-tblgen",
1158    td_file = "mlir/dialects/SparseTensorOps.td",
1159    deps = [
1160        ":SparseTensorOpsPyTdFiles",
1161    ],
1162)
1163
1164filegroup(
1165    name = "SparseTensorOpsPyFiles",
1166    srcs = [
1167        "mlir/dialects/sparse_tensor.py",
1168        ":SparseTensorEnumPyGen",
1169        ":SparseTensorOpsPyGen",
1170    ],
1171)
1172
1173##---------------------------------------------------------------------------##
1174# SPIRV dialect.
1175##---------------------------------------------------------------------------##
1176
1177gentbl_filegroup(
1178    name = "SPIRVOpsPyGen",
1179    tbl_outs = [
1180        (
1181            [
1182                "-gen-python-op-bindings",
1183                "-bind-dialect=spirv",
1184            ],
1185            "mlir/dialects/_spirv_ops_gen.py",
1186        ),
1187    ],
1188    tblgen = "//mlir:mlir-tblgen",
1189    td_file = "mlir/dialects/SPIRVOps.td",
1190    deps = [
1191        "//mlir:OpBaseTdFiles",
1192        "//mlir:SPIRVOpsTdFiles",
1193    ],
1194)
1195
1196filegroup(
1197    name = "SPIRVOpsPyFiles",
1198    srcs = [
1199        "mlir/dialects/spirv.py",
1200        ":SPIRVOpsPyGen",
1201    ],
1202)
1203
1204##---------------------------------------------------------------------------##
1205# Tensor dialect.
1206##---------------------------------------------------------------------------##
1207
1208td_library(
1209    name = "TensorOpsPyTdFiles",
1210    srcs = [
1211    ],
1212    deps = [
1213        "//mlir:OpBaseTdFiles",
1214        "//mlir:TensorOpsTdFiles",
1215    ],
1216)
1217
1218gentbl_filegroup(
1219    name = "TensorOpsPyGen",
1220    tbl_outs = [
1221        (
1222            [
1223                "-gen-python-op-bindings",
1224                "-bind-dialect=tensor",
1225            ],
1226            "mlir/dialects/_tensor_ops_gen.py",
1227        ),
1228    ],
1229    tblgen = "//mlir:mlir-tblgen",
1230    td_file = "mlir/dialects/TensorOps.td",
1231    deps = [
1232        ":TensorOpsPyTdFiles",
1233    ],
1234)
1235
1236filegroup(
1237    name = "TensorOpsPyFiles",
1238    srcs = [
1239        "mlir/dialects/tensor.py",
1240        ":TensorOpsPyGen",
1241    ],
1242)
1243
1244##---------------------------------------------------------------------------##
1245# Tosa dialect.
1246##---------------------------------------------------------------------------##
1247
1248gentbl_filegroup(
1249    name = "TosaOpsPyGen",
1250    tbl_outs = [
1251        (
1252            [
1253                "-gen-python-op-bindings",
1254                "-bind-dialect=tosa",
1255            ],
1256            "mlir/dialects/_tosa_ops_gen.py",
1257        ),
1258    ],
1259    tblgen = "//mlir:mlir-tblgen",
1260    td_file = "mlir/dialects/TosaOps.td",
1261    deps = [
1262        "//mlir:OpBaseTdFiles",
1263        "//mlir:TosaDialectTdFiles",
1264    ],
1265)
1266
1267filegroup(
1268    name = "TosaOpsPyFiles",
1269    srcs = [
1270        "mlir/dialects/tosa.py",
1271        ":TosaOpsPyGen",
1272    ],
1273)
1274
1275##---------------------------------------------------------------------------##
1276# Transform dialect and extensions.
1277##---------------------------------------------------------------------------##
1278
1279gentbl_filegroup(
1280    name = "TransformEnumPyGen",
1281    tbl_outs = [
1282        (
1283            [
1284                "-gen-python-enum-bindings",
1285                "-bind-dialect=transform",
1286            ],
1287            "mlir/dialects/_transform_enum_gen.py",
1288        ),
1289    ],
1290    tblgen = "//mlir:mlir-tblgen",
1291    td_file = "mlir/dialects/TransformAttrs.td",
1292    deps = [
1293        "//mlir:CallInterfacesTdFiles",
1294        "//mlir:FunctionInterfacesTdFiles",
1295        "//mlir:OpBaseTdFiles",
1296        "//mlir:TransformDialectTdFiles",
1297    ],
1298)
1299
1300gentbl_filegroup(
1301    name = "TransformOpsPyGen",
1302    tbl_outs = [
1303        (
1304            [
1305                "-gen-python-op-bindings",
1306                "-bind-dialect=transform",
1307            ],
1308            "mlir/dialects/_transform_ops_gen.py",
1309        ),
1310    ],
1311    tblgen = "//mlir:mlir-tblgen",
1312    td_file = "mlir/dialects/TransformOps.td",
1313    deps = [
1314        "//mlir:CallInterfacesTdFiles",
1315        "//mlir:FunctionInterfacesTdFiles",
1316        "//mlir:OpBaseTdFiles",
1317        "//mlir:TransformDialectTdFiles",
1318    ],
1319)
1320
1321gentbl_filegroup(
1322    name = "BufferizationTransformOpsPyGen",
1323    tbl_outs = [
1324        (
1325            [
1326                "-gen-python-op-bindings",
1327                "-bind-dialect=transform",
1328                "-dialect-extension=bufferization_transform",
1329            ],
1330            "mlir/dialects/_bufferization_transform_ops_gen.py",
1331        ),
1332    ],
1333    tblgen = "//mlir:mlir-tblgen",
1334    td_file = "mlir/dialects/BufferizationTransformOps.td",
1335    deps = [
1336        "//mlir:BufferizationTransformOpsTdFiles",
1337    ],
1338)
1339
1340gentbl_filegroup(
1341    name = "GPUTransformOpsPyGen",
1342    tbl_outs = [
1343        (
1344            [
1345                "-gen-python-op-bindings",
1346                "-bind-dialect=transform",
1347                "-dialect-extension=gpu_transform",
1348            ],
1349            "mlir/dialects/_gpu_transform_ops_gen.py",
1350        ),
1351    ],
1352    tblgen = "//mlir:mlir-tblgen",
1353    td_file = "mlir/dialects/GPUTransformOps.td",
1354    deps = [
1355        "//mlir:CallInterfacesTdFiles",
1356        "//mlir:FunctionInterfacesTdFiles",
1357        "//mlir:GPUTransformOpsTdFiles",
1358        "//mlir:OpBaseTdFiles",
1359        "//mlir:TransformDialectTdFiles",
1360    ],
1361)
1362
1363gentbl_filegroup(
1364    name = "StructureTransformEnumPyGen",
1365    tbl_outs = [
1366        (
1367            [
1368                "-gen-python-enum-bindings",
1369                "-bind-dialect=transform",
1370            ],
1371            "mlir/dialects/_structured_transform_enum_gen.py",
1372        ),
1373    ],
1374    tblgen = "//mlir:mlir-tblgen",
1375    td_file = "mlir/dialects/LinalgStructuredTransformEnums.td",
1376    deps = [
1377        "//mlir:CallInterfacesTdFiles",
1378        "//mlir:FunctionInterfacesTdFiles",
1379        "//mlir:LinalgTransformOpsTdFiles",
1380        "//mlir:OpBaseTdFiles",
1381        "//mlir:TransformDialectTdFiles",
1382    ],
1383)
1384
1385gentbl_filegroup(
1386    name = "StructuredTransformOpsPyGen",
1387    tbl_outs = [
1388        (
1389            [
1390                "-gen-python-op-bindings",
1391                "-bind-dialect=transform",
1392                "-dialect-extension=structured_transform",
1393            ],
1394            "mlir/dialects/_structured_transform_ops_gen.py",
1395        ),
1396    ],
1397    tblgen = "//mlir:mlir-tblgen",
1398    td_file = "mlir/dialects/LinalgStructuredTransformOps.td",
1399    deps = [
1400        "//mlir:CallInterfacesTdFiles",
1401        "//mlir:FunctionInterfacesTdFiles",
1402        "//mlir:LinalgTransformOpsTdFiles",
1403        "//mlir:OpBaseTdFiles",
1404        "//mlir:TransformDialectTdFiles",
1405    ],
1406)
1407
1408gentbl_filegroup(
1409    name = "LoopTransformOpsPyGen",
1410    tbl_outs = [
1411        (
1412            [
1413                "-gen-python-op-bindings",
1414                "-bind-dialect=transform",
1415                "-dialect-extension=loop_transform",
1416            ],
1417            "mlir/dialects/_loop_transform_ops_gen.py",
1418        ),
1419    ],
1420    tblgen = "//mlir:mlir-tblgen",
1421    td_file = "mlir/dialects/SCFLoopTransformOps.td",
1422    deps = [
1423        "//mlir:CallInterfacesTdFiles",
1424        "//mlir:FunctionInterfacesTdFiles",
1425        "//mlir:OpBaseTdFiles",
1426        "//mlir:SCFTransformOpsTdFiles",
1427        "//mlir:TransformDialectTdFiles",
1428    ],
1429)
1430
1431gentbl_filegroup(
1432    name = "MemRefTransformOpsPyGen",
1433    tbl_outs = [
1434        (
1435            [
1436                "-gen-python-op-bindings",
1437                "-bind-dialect=transform",
1438                "-dialect-extension=memref_transform",
1439            ],
1440            "mlir/dialects/_memref_transform_ops_gen.py",
1441        ),
1442    ],
1443    tblgen = "//mlir:mlir-tblgen",
1444    td_file = "mlir/dialects/MemRefTransformOps.td",
1445    deps = [
1446        "//mlir:MemRefTransformOpsTdFiles",
1447    ],
1448)
1449
1450gentbl_filegroup(
1451    name = "NVGPUTransformOpsPyGen",
1452    tbl_outs = [
1453        (
1454            [
1455                "-gen-python-op-bindings",
1456                "-bind-dialect=transform",
1457                "-dialect-extension=nvgpu_transform",
1458            ],
1459            "mlir/dialects/_nvgpu_transform_ops_gen.py",
1460        ),
1461    ],
1462    tblgen = "//mlir:mlir-tblgen",
1463    td_file = "mlir/dialects/NVGPUTransformOps.td",
1464    deps = [
1465        "//mlir:NVGPUTransformOpsTdFiles",
1466    ],
1467)
1468
1469gentbl_filegroup(
1470    name = "PDLTransformOpsPyGen",
1471    tbl_outs = [
1472        (
1473            [
1474                "-gen-python-op-bindings",
1475                "-bind-dialect=transform",
1476                "-dialect-extension=transform_pdl_extension",
1477            ],
1478            "mlir/dialects/_transform_pdl_extension_ops_gen.py",
1479        ),
1480    ],
1481    tblgen = "//mlir:mlir-tblgen",
1482    td_file = "mlir/dialects/TransformPDLExtensionOps.td",
1483    deps = [
1484        "//mlir:CallInterfacesTdFiles",
1485        "//mlir:FunctionInterfacesTdFiles",
1486        "//mlir:OpBaseTdFiles",
1487        "//mlir:TransformDialectTdFiles",
1488        "//mlir:TransformPDLExtensionTdFiles",
1489    ],
1490)
1491
1492gentbl_filegroup(
1493    name = "SparseTensorTransformOpsPyGen",
1494    tbl_outs = [
1495        (
1496            [
1497                "-gen-python-op-bindings",
1498                "-bind-dialect=transform",
1499                "-dialect-extension=sparse_tensor_transform",
1500            ],
1501            "mlir/dialects/_sparse_tensor_transform_ops_gen.py",
1502        ),
1503    ],
1504    tblgen = "//mlir:mlir-tblgen",
1505    td_file = "mlir/dialects/SparseTensorTransformOps.td",
1506    deps = [
1507        "//mlir:SparseTensorTransformOpsTdFiles",
1508    ],
1509)
1510
1511gentbl_filegroup(
1512    name = "TensorTransformOpsPyGen",
1513    tbl_outs = [
1514        (
1515            [
1516                "-gen-python-op-bindings",
1517                "-bind-dialect=transform",
1518                "-dialect-extension=tensor_transform",
1519            ],
1520            "mlir/dialects/_tensor_transform_ops_gen.py",
1521        ),
1522    ],
1523    tblgen = "//mlir:mlir-tblgen",
1524    td_file = "mlir/dialects/TensorTransformOps.td",
1525    deps = [
1526        "//mlir:TensorTransformOpsTdFiles",
1527    ],
1528)
1529
1530gentbl_filegroup(
1531    name = "VectorTransformEnumPyGen",
1532    tbl_outs = [
1533        (
1534            [
1535                "-gen-python-enum-bindings",
1536                "-bind-dialect=transform",
1537            ],
1538            "mlir/dialects/_vector_transform_enum_gen.py",
1539        ),
1540    ],
1541    tblgen = "//mlir:mlir-tblgen",
1542    td_file = "mlir/dialects/VectorTransformsBase.td",
1543    deps = [
1544        "//mlir:OpBaseTdFiles",
1545        "//mlir:TransformDialectTdFiles",
1546        "//mlir:VectorTransformOpsTdFiles",
1547    ],
1548)
1549
1550gentbl_filegroup(
1551    name = "VectorTransformOpsPyGen",
1552    tbl_outs = [
1553        (
1554            [
1555                "-gen-python-op-bindings",
1556                "-bind-dialect=transform",
1557                "-dialect-extension=vector_transform",
1558            ],
1559            "mlir/dialects/_vector_transform_ops_gen.py",
1560        ),
1561    ],
1562    tblgen = "//mlir:mlir-tblgen",
1563    td_file = "mlir/dialects/VectorTransformOps.td",
1564    deps = [
1565        "//mlir:OpBaseTdFiles",
1566        "//mlir:TransformDialectTdFiles",
1567        "//mlir:VectorTransformOpsTdFiles",
1568    ],
1569)
1570
1571filegroup(
1572    name = "TransformOpsPyFiles",
1573    srcs = [
1574        ":BufferizationTransformOpsPyGen",
1575        ":GPUTransformOpsPyGen",
1576        ":LoopTransformOpsPyGen",
1577        ":MemRefTransformOpsPyGen",
1578        ":NVGPUTransformOpsPyGen",
1579        ":PDLTransformOpsPyGen",
1580        ":SparseTensorTransformOpsPyGen",
1581        ":StructureTransformEnumPyGen",
1582        ":StructuredTransformOpsPyGen",
1583        ":TensorTransformOpsPyGen",
1584        ":TransformEnumPyGen",
1585        ":TransformOpsPyGen",
1586        ":VectorTransformEnumPyGen",
1587        ":VectorTransformOpsPyGen",
1588    ],
1589)
1590
1591filegroup(
1592    name = "TransformOpsPackagePyFiles",
1593    srcs = glob(["mlir/dialects/transform/*.py"]),
1594)
1595
1596filegroup(
1597    name = "TransformExtrasPackagePyFiles",
1598    srcs = glob(["mlir/dialects/transform/extras/*.py"]),
1599)
1600
1601filegroup(
1602    name = "TransformInterpreterPackagePyFiles",
1603    srcs = glob(["mlir/dialects/transform/interpreter/*.py"]),
1604)
1605
1606##---------------------------------------------------------------------------##
1607# Vector dialect.
1608##---------------------------------------------------------------------------##
1609
1610gentbl_filegroup(
1611    name = "VectorOpsPyGen",
1612    tbl_outs = [
1613        (
1614            [
1615                "-gen-python-op-bindings",
1616                "-bind-dialect=vector",
1617            ],
1618            "mlir/dialects/_vector_ops_gen.py",
1619        ),
1620    ],
1621    tblgen = "//mlir:mlir-tblgen",
1622    td_file = "mlir/dialects/VectorOps.td",
1623    deps = [
1624        "//mlir:ArithOpsTdFiles",
1625        "//mlir:OpBaseTdFiles",
1626        "//mlir:VectorOpsTdFiles",
1627    ],
1628)
1629
1630gentbl_filegroup(
1631    name = "VectorAttributesPyGen",
1632    tbl_outs = [
1633        (
1634            [
1635                "-gen-python-enum-bindings",
1636                "-bind-dialect=vector",
1637            ],
1638            "mlir/dialects/_vector_enum_gen.py",
1639        ),
1640    ],
1641    tblgen = "//mlir:mlir-tblgen",
1642    td_file = "mlir/dialects/VectorAttributes.td",
1643    deps = [
1644        "//mlir:ArithOpsTdFiles",
1645        "//mlir:OpBaseTdFiles",
1646        "//mlir:VectorOpsTdFiles",
1647    ],
1648)
1649
1650filegroup(
1651    name = "VectorOpsPyFiles",
1652    srcs = [
1653        "mlir/dialects/vector.py",
1654        ":VectorAttributesPyGen",
1655        ":VectorOpsPyGen",
1656    ],
1657)
1658