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