1# Description: 2# The MLIR "Multi-Level Intermediate Representation" Compiler Infrastructure 3 4load("@org_tensorflow//third_party/mlir:tblgen.bzl", "gentbl") 5 6licenses(["notice"]) 7 8package(default_visibility = [":friends"]) 9 10package_group( 11 name = "subpackages", 12 packages = ["//..."], 13) 14 15package_group( 16 name = "friends", 17 packages = ["//..."], 18) 19 20exports_files([ 21 "LICENSE.TXT", 22 "include/mlir/Dialect/LLVMIR/LLVMOps.td", 23 "run_lit.sh", 24]) 25 26cc_library( 27 name = "DialectSymbolRegistry", 28 # strip_include_prefix does not apply to textual_hdrs. 29 hdrs = ["include/mlir/IR/DialectSymbolRegistry.def"], 30 strip_include_prefix = "include/mlir/IR", 31 textual_hdrs = ["include/mlir/IR/DialectSymbolRegistry.def"], 32) 33 34gentbl( 35 name = "OpAsmInterfacesIncGen", 36 strip_include_prefix = "include", 37 tbl_outs = [ 38 ( 39 "-gen-op-interface-decls", 40 "include/mlir/IR/OpAsmInterface.h.inc", 41 ), 42 ( 43 "-gen-op-interface-defs", 44 "include/mlir/IR/OpAsmInterface.cpp.inc", 45 ), 46 ], 47 tblgen = ":mlir-tblgen", 48 td_file = "include/mlir/IR/OpAsmInterface.td", 49 td_srcs = [ 50 ":OpBaseTdFiles", 51 ], 52) 53 54cc_library( 55 name = "IR", 56 srcs = glob([ 57 "lib/IR/*.cpp", 58 "lib/IR/*.h", 59 ]), 60 hdrs = glob([ 61 "include/mlir/IR/*.h", 62 ]) + [ 63 "include/mlir/Analysis/CallInterfaces.h", 64 ], 65 includes = ["include"], 66 deps = [ 67 ":CallOpInterfacesIncGen", 68 ":DialectSymbolRegistry", 69 ":InferTypeOpInterfaceIncGen", 70 ":OpAsmInterfacesIncGen", 71 ":Support", 72 "@llvm-project//llvm:support", 73 ], 74) 75 76cc_library( 77 name = "Pass", 78 srcs = glob([ 79 "lib/Pass/*.cpp", 80 "lib/Pass/*.h", 81 ]), 82 hdrs = glob([ 83 "include/mlir/Pass/*.h", 84 ]) + [ 85 "include/mlir/Analysis/Verifier.h", 86 ], 87 includes = ["include"], 88 linkopts = [ 89 "-lm", 90 "-lpthread", 91 ], 92 deps = [ 93 ":IR", 94 ":Support", 95 "@llvm-project//llvm:support", 96 ], 97) 98 99# TODO(ntv): Update these to enable simplifying the cmake and build files. 100cc_library( 101 name = "EDSC", 102 srcs = [ 103 "lib/EDSC/Builders.cpp", 104 "lib/EDSC/Helpers.cpp", 105 "lib/EDSC/Intrinsics.cpp", 106 ], 107 hdrs = [ 108 "include/mlir-c/Core.h", 109 "include/mlir/EDSC/Builders.h", 110 "include/mlir/EDSC/Helpers.h", 111 "include/mlir/EDSC/Intrinsics.h", 112 ], 113 includes = ["include"], 114 deps = [ 115 ":AffineOps", 116 ":IR", 117 ":LoopOps", 118 ":StandardOps", 119 ":Support", 120 ":TransformUtils", 121 "@llvm-project//llvm:support", 122 ], 123) 124 125cc_library( 126 name = "EDSCInterface", 127 srcs = [ 128 "lib/EDSC/CoreAPIs.cpp", 129 ], 130 hdrs = [ 131 "include/mlir-c/Core.h", 132 ], 133 includes = ["include"], 134 deps = [ 135 ":IR", 136 ":Parser", 137 ":Support", 138 "@llvm-project//llvm:support", 139 ], 140) 141 142filegroup( 143 name = "OpBaseTdFiles", 144 srcs = [ 145 "include/mlir/IR/OpBase.td", 146 ], 147) 148 149filegroup( 150 name = "AffineOpsTdFiles", 151 srcs = [ 152 "include/mlir/Dialect/AffineOps/AffineOps.td", 153 "include/mlir/Dialect/AffineOps/AffineOpsBase.td", 154 "include/mlir/Transforms/LoopLikeInterface.td", 155 ":OpBaseTdFiles", 156 ], 157) 158 159gentbl( 160 name = "AffineOpsIncGen", 161 strip_include_prefix = "include", 162 tbl_outs = [ 163 ( 164 "-gen-op-decls", 165 "include/mlir/Dialect/AffineOps/AffineOps.h.inc", 166 ), 167 ( 168 "-gen-op-defs", 169 "include/mlir/Dialect/AffineOps/AffineOps.cpp.inc", 170 ), 171 ], 172 tblgen = ":mlir-tblgen", 173 td_file = "include/mlir/Dialect/AffineOps/AffineOps.td", 174 td_srcs = [ 175 ":AffineOpsTdFiles", 176 ], 177) 178 179filegroup( 180 name = "LoopOpsTdFiles", 181 srcs = [ 182 "include/mlir/Dialect/LoopOps/LoopOps.td", 183 "include/mlir/Transforms/LoopLikeInterface.td", 184 ":OpBaseTdFiles", 185 ], 186) 187 188gentbl( 189 name = "LoopOpsIncGen", 190 strip_include_prefix = "include", 191 tbl_outs = [ 192 ( 193 "-gen-op-decls", 194 "include/mlir/Dialect/LoopOps/LoopOps.h.inc", 195 ), 196 ( 197 "-gen-op-defs", 198 "include/mlir/Dialect/LoopOps/LoopOps.cpp.inc", 199 ), 200 ], 201 tblgen = ":mlir-tblgen", 202 td_file = "include/mlir/Dialect/LoopOps/LoopOps.td", 203 td_srcs = [ 204 ":LoopOpsTdFiles", 205 ], 206) 207 208filegroup( 209 name = "StdOpsTdFiles", 210 srcs = [ 211 "include/mlir/Analysis/CallInterfaces.td", 212 "include/mlir/Dialect/StandardOps/Ops.td", 213 "include/mlir/IR/OpAsmInterface.td", 214 ":OpBaseTdFiles", 215 ], 216) 217 218gentbl( 219 name = "StandardOpsIncGen", 220 strip_include_prefix = "include", 221 tbl_outs = [ 222 ( 223 "-gen-op-decls", 224 "include/mlir/Dialect/StandardOps/Ops.h.inc", 225 ), 226 ( 227 "-gen-op-defs", 228 "include/mlir/Dialect/StandardOps/Ops.cpp.inc", 229 ), 230 ( 231 "-gen-enum-decls", 232 "include/mlir/Dialect/StandardOps/OpsEnums.h.inc", 233 ), 234 ( 235 "-gen-enum-defs", 236 "include/mlir/Dialect/StandardOps/OpsEnums.cpp.inc", 237 ), 238 ], 239 tblgen = ":mlir-tblgen", 240 td_file = "include/mlir/Dialect/StandardOps/Ops.td", 241 td_srcs = [ 242 ":StdOpsTdFiles", 243 ], 244) 245 246cc_library( 247 name = "Dialect", 248 srcs = glob([ 249 "lib/Dialect/*.cpp", 250 "lib/Dialect/*.h", 251 ]), 252 hdrs = glob([ 253 "include/mlir/Dialect/*.h", 254 ]), 255 includes = ["include"], 256 deps = [ 257 ":IR", 258 "@llvm-project//llvm:support", 259 ], 260) 261 262cc_library( 263 name = "DialectUtils", 264 srcs = glob([ 265 "lib/Dialect/Utils/*.cpp", 266 "lib/Dialect/Utils/*.h", 267 ]), 268 hdrs = glob([ 269 "include/mlir/Dialect/Utils/*.h", 270 ]), 271 includes = ["include"], 272 deps = [ 273 ":IR", 274 ":Support", 275 "@llvm-project//llvm:support", 276 ], 277) 278 279cc_library( 280 name = "AffineOps", 281 srcs = glob( 282 [ 283 "lib/Dialect/AffineOps/*.cpp", 284 "lib/Dialect/AffineOps/*.h", 285 ], 286 exclude = ["lib/Dialect/**/DialectRegistration.cpp"], 287 ) + [ 288 "include/mlir/Transforms/InliningUtils.h", 289 "include/mlir/Transforms/LoopLikeInterface.h", 290 ], 291 hdrs = glob([ 292 "include/mlir/Dialect/AffineOps/*.h", 293 ]) + [ 294 "include/mlir/Transforms/SideEffectsInterface.h", 295 ], 296 includes = ["include"], 297 deps = [ 298 ":AffineOpsIncGen", 299 ":IR", 300 ":LoopLikeOpInterfaceIncGen", 301 ":StandardOps", 302 ":Support", 303 "@llvm-project//llvm:support", 304 ], 305) 306 307# Library with affine dialect static initialization. 308cc_library( 309 name = "AffineDialectRegistration", 310 srcs = ["lib/Dialect/AffineOps/DialectRegistration.cpp"], 311 deps = [":AffineOps"], 312 alwayslink = 1, 313) 314 315cc_library( 316 name = "AffineToStandardTransforms", 317 srcs = glob([ 318 "lib/Conversion/AffineToStandard/*.cpp", 319 "lib/Conversion/AffineToStandard/*.h", 320 ]), 321 hdrs = glob(["include/mlir/Conversion/AffineToStandard/*.h"]), 322 includes = ["include"], 323 deps = [ 324 ":AffineOps", 325 ":IR", 326 ":LoopOps", 327 ":Pass", 328 ":StandardOps", 329 ":Support", 330 ":Transforms", 331 ], 332 alwayslink = 1, # contains pass registration 333) 334 335# SDBM dialect only contains attribute components that can be constructed given 336# a dialect object, so whenever it is used it must also be registered. Therefore 337# we don't split out the registration library for it. 338cc_library( 339 name = "SDBM", 340 srcs = glob([ 341 "lib/Dialect/SDBM/*.cpp", 342 "lib/Dialect/SDBM/*.h", 343 ]), 344 hdrs = glob([ 345 "include/mlir/Dialect/SDBM/*.h", 346 ]), 347 includes = ["include"], 348 deps = [ 349 ":IR", 350 ":Support", 351 "@llvm-project//llvm:support", 352 ], 353 alwayslink = 1, 354) 355 356cc_library( 357 name = "LoopOps", 358 srcs = glob( 359 [ 360 "lib/Dialect/LoopOps/*.cpp", 361 "lib/Dialect/LoopOps/*.h", 362 ], 363 exclude = ["lib/Dialect/**/DialectRegistration.cpp"], 364 ), 365 hdrs = glob([ 366 "include/mlir/Dialect/LoopOps/*.h", 367 ]) + [ 368 "include/mlir/Transforms/LoopLikeInterface.h", 369 "include/mlir/Transforms/SideEffectsInterface.h", 370 ], 371 includes = ["include"], 372 deps = [ 373 ":IR", 374 ":LoopLikeOpInterfaceIncGen", 375 ":LoopOpsIncGen", 376 ":StandardOps", 377 ":Support", 378 "@llvm-project//llvm:support", 379 ], 380) 381 382cc_library( 383 name = "LoopDialectRegistration", 384 srcs = ["lib/Dialect/LoopOps/DialectRegistration.cpp"], 385 deps = [":LoopOps"], 386 alwayslink = 1, 387) 388 389cc_library( 390 name = "StandardOps", 391 srcs = glob( 392 [ 393 "lib/Dialect/StandardOps/*.cpp", 394 "lib/Dialect/StandardOps/*.h", 395 ], 396 exclude = ["lib/Dialect/**/DialectRegistration.cpp"], 397 ), 398 hdrs = glob([ 399 "include/mlir/Dialect/StandardOps/*.h", 400 ]) + [ 401 "include/mlir/Analysis/CallInterfaces.h", 402 "include/mlir/Transforms/InliningUtils.h", 403 ], 404 includes = ["include"], 405 deps = [ 406 ":CallOpInterfacesIncGen", 407 ":CommonFolders", 408 ":IR", 409 ":StandardOpsIncGen", 410 ":Support", 411 "@llvm-project//llvm:support", 412 ], 413) 414 415# Library with standard dialect static initialization. 416cc_library( 417 name = "StandardDialectRegistration", 418 srcs = ["lib/Dialect/StandardOps/DialectRegistration.cpp"], 419 deps = [":StandardOps"], 420 alwayslink = 1, 421) 422 423cc_library( 424 name = "VectorOps", 425 srcs = glob( 426 [ 427 "lib/Dialect/VectorOps/*.cpp", 428 "lib/Dialect/VectorOps/*.h", 429 ], 430 exclude = ["lib/Dialect/**/DialectRegistration.cpp"], 431 ), 432 hdrs = glob([ 433 "include/mlir/Dialect/VectorOps/*.h", 434 ]), 435 includes = ["include"], 436 deps = [ 437 ":AffineOps", 438 ":Analysis", 439 ":DialectUtils", 440 ":IR", 441 ":StandardOps", 442 ":Support", 443 ":VectorOpsIncGen", 444 ":VectorTransformPatternsIncGen", 445 "@llvm-project//llvm:support", 446 ], 447) 448 449cc_library( 450 name = "VectorDialectRegistration", 451 srcs = ["lib/Dialect/VectorOps/DialectRegistration.cpp"], 452 deps = [":VectorOps"], 453 alwayslink = 1, 454) 455 456cc_library( 457 name = "Support", 458 srcs = glob( 459 [ 460 "lib/Support/*.cpp", 461 "lib/Support/*.h", 462 ], 463 exclude = [ 464 # TODO(herhut): Move JitRunner out of Support so that Support does not 465 # depend on dialect. 466 "lib/Support/JitRunner.cpp", 467 # TODO(jpienaar): Move this out, else Support depends on Analysis/ 468 "lib/Support/MlirOptMain.cpp", 469 # TODO(jpienaar): Move this out, else Support depends on Analysis/ 470 "lib/Support/TranslateClParser.cpp", 471 ], 472 ), 473 hdrs = glob([ 474 "include/mlir/ADT/*.h", 475 "include/mlir/Support/*.h", 476 ]) + [ 477 "include/mlir/Translation.h", 478 ], 479 includes = ["include"], 480 deps = [ 481 "@llvm-project//llvm:support", 482 ], 483) 484 485cc_library( 486 name = "ParserTokenKinds", 487 # strip_include_prefix does not apply to textual_hdrs. 488 hdrs = ["lib/Parser/TokenKinds.def"], 489 strip_include_prefix = "lib/Parser", 490 textual_hdrs = ["lib/Parser/TokenKinds.def"], 491) 492 493cc_library( 494 name = "Parser", 495 srcs = glob([ 496 "lib/Parser/*.cpp", 497 "lib/Parser/*.h", 498 ]), 499 hdrs = glob([ 500 "include/mlir/*.h", 501 ]), 502 includes = ["include"], 503 deps = [ 504 ":Analysis", 505 ":IR", 506 ":ParserTokenKinds", 507 ":Support", 508 "@llvm-project//llvm:support", 509 ], 510) 511 512cc_library( 513 name = "LLVMDialect", 514 srcs = glob( 515 [ 516 "lib/Dialect/LLVMIR/IR/*.cpp", 517 "lib/Dialect/LLVMIR/IR/*.h", 518 ], 519 exclude = [ 520 "lib/Dialect/LLVMIR/IR/NVVM*.cpp", 521 "lib/Dialect/LLVMIR/IR/NVVM*.h", 522 "lib/Dialect/LLVMIR/IR/ROCDL*.cpp", 523 "lib/Dialect/LLVMIR/IR/ROCDL*.h", 524 ], 525 ), 526 hdrs = glob( 527 [ 528 "include/mlir/Dialect/LLVMIR/*.h", 529 ], 530 exclude = [ 531 "include/mlir/Dialect/LLVMIR/NVVM*.h", 532 "include/mlir/Dialect/LLVMIR/ROCDL*.h", 533 ], 534 ), 535 includes = ["include"], 536 deps = [ 537 ":IR", 538 ":LLVMOpsIncGen", 539 ":Support", 540 "@llvm-project//llvm:asm_parser", 541 "@llvm-project//llvm:core", 542 "@llvm-project//llvm:support", 543 ], 544 alwayslink = 1, 545) 546 547filegroup( 548 name = "GPUOpsTdFiles", 549 srcs = [ 550 "include/mlir/Dialect/GPU/GPUOps.td", 551 "include/mlir/Dialect/LLVMIR/LLVMOpBase.td", 552 ":OpBaseTdFiles", 553 ], 554) 555 556gentbl( 557 name = "GPUOpsIncGen", 558 strip_include_prefix = "include", 559 tbl_outs = [ 560 ( 561 "-gen-op-decls", 562 "include/mlir/Dialect/GPU/GPUOps.h.inc", 563 ), 564 ( 565 "-gen-op-defs", 566 "include/mlir/Dialect/GPU/GPUOps.cpp.inc", 567 ), 568 ], 569 tblgen = ":mlir-tblgen", 570 td_file = "include/mlir/Dialect/GPU/GPUOps.td", 571 td_srcs = [ 572 ":GPUOpsTdFiles", 573 ], 574) 575 576cc_library( 577 name = "GPUDialect", 578 srcs = glob( 579 [ 580 "lib/Dialect/GPU/IR/*.cpp", 581 "lib/Dialect/GPU/IR/*.h", 582 ], 583 exclude = ["lib/Dialect/**/DialectRegistration.cpp"], 584 ), 585 hdrs = glob([ 586 "include/mlir/Dialect/GPU/*.h", 587 ]), 588 includes = ["include"], 589 deps = [ 590 ":GPUOpsIncGen", 591 ":IR", 592 ":LLVMDialect", 593 ":StandardOps", 594 ], 595) 596 597cc_library( 598 name = "GPUDialectRegistration", 599 srcs = ["lib/Dialect/GPU/IR/DialectRegistration.cpp"], 600 deps = [ 601 ":GPUDialect", 602 ], 603 alwayslink = 1, 604) 605 606cc_library( 607 name = "GPUTransforms", 608 srcs = glob( 609 [ 610 "lib/Dialect/GPU/Transforms/*.cpp", 611 "lib/Dialect/GPU/Transforms/*.h", 612 ], 613 exclude = ["lib/Dialect/**/DialectRegistration.cpp"], 614 ), 615 hdrs = ["include/mlir/Dialect/GPU/Passes.h"], 616 includes = ["include"], 617 deps = [ 618 ":EDSC", 619 ":GPUDialect", 620 ":GPUDialectRegistration", 621 ":IR", 622 ":LoopOps", 623 ":Pass", 624 ":StandardOps", 625 ":Support", 626 ":Transforms", 627 ], 628 alwayslink = 1, 629) 630 631filegroup( 632 name = "LLVMOpsTdFiles", 633 srcs = [ 634 "include/mlir/Dialect/LLVMIR/LLVMOpBase.td", 635 "include/mlir/Dialect/LLVMIR/LLVMOps.td", 636 ":OpBaseTdFiles", 637 ], 638) 639 640cc_library( 641 name = "GPUCommonTransforms", 642 hdrs = [ 643 "lib/Conversion/GPUCommon/IndexIntrinsicsOpLowering.h", 644 "lib/Conversion/GPUCommon/OpToFuncCallLowering.h", 645 ], 646 deps = [ 647 ":GPUDialect", 648 ":IR", 649 ":LLVMDialect", 650 ":LLVMTransforms", 651 ":StandardOps", 652 "@llvm-project//llvm:support", 653 ], 654) 655 656gentbl( 657 name = "GPUToNVVMGen", 658 strip_include_prefix = "lib/Conversion/GPUToNVVM", 659 tbl_outs = [ 660 ( 661 "-gen-rewriters", 662 "lib/Conversion/GPUToNVVM/GPUToNVVM.cpp.inc", 663 ), 664 ], 665 tblgen = ":mlir-tblgen", 666 td_file = "lib/Conversion/GPUToNVVM/GPUToNVVM.td", 667 td_srcs = [ 668 ":GPUOpsTdFiles", 669 ":NVVMOpsTdFiles", 670 ], 671) 672 673cc_library( 674 name = "GPUToNVVMTransforms", 675 srcs = glob([ 676 "lib/Conversion/GPUToNVVM/*.cpp", 677 "lib/Conversion/GPUToNVVM/*.h", 678 ]), 679 hdrs = glob([ 680 "include/mlir/Conversion/GPUToNVVM/*.h", 681 ]), 682 includes = ["include"], 683 deps = [ 684 ":GPUCommonTransforms", 685 ":GPUDialect", 686 ":GPUToNVVMGen", 687 ":IR", 688 ":LLVMTransforms", 689 ":NVVMDialect", 690 ":Pass", 691 ":Transforms", 692 "@llvm-project//llvm:support", 693 ], 694 alwayslink = 1, 695) 696 697cc_library( 698 name = "GPUToROCDLTransforms", 699 srcs = ["lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp"], 700 hdrs = [ 701 "include/mlir/Conversion/GPUToROCDL/GPUToROCDLPass.h", 702 ], 703 includes = ["include"], 704 deps = [ 705 ":GPUCommonTransforms", 706 ":GPUDialect", 707 ":LLVMTransforms", 708 ":Pass", 709 ":ROCDLDialect", 710 ":Transforms", 711 ], 712 alwayslink = 1, 713) 714 715cc_library( 716 name = "GPUToCUDATransforms", 717 srcs = [ 718 "lib/Conversion/GPUToCUDA/ConvertKernelFuncToCubin.cpp", 719 "lib/Conversion/GPUToCUDA/ConvertLaunchFuncToCudaCalls.cpp", 720 ], 721 hdrs = ["include/mlir/Conversion/GPUToCUDA/GPUToCUDAPass.h"], 722 includes = ["include"], 723 deps = [ 724 ":GPUDialect", 725 ":IR", 726 ":LLVMDialect", 727 ":Pass", 728 ":Support", 729 ":TargetNVVMIR", 730 "@llvm-project//llvm:core", 731 "@llvm-project//llvm:nvptx_target", # buildcleaner: keep 732 "@llvm-project//llvm:support", 733 "@llvm-project//llvm:target", 734 ], 735 alwayslink = 1, 736) 737 738gentbl( 739 name = "GPUToSPIRVIncGen", 740 strip_include_prefix = "lib/Conversion/GPUToSPIRV", 741 tbl_outs = [ 742 ( 743 "-gen-rewriters", 744 "lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp.inc", 745 ), 746 ], 747 tblgen = ":mlir-tblgen", 748 td_file = "lib/Conversion/GPUToSPIRV/GPUToSPIRV.td", 749 td_srcs = [ 750 ":GPUOpsTdFiles", 751 ":SPIRVOpsTdFiles", 752 ], 753) 754 755cc_library( 756 name = "GPUToSPIRVTransforms", 757 srcs = [ 758 "lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp", 759 "lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRVPass.cpp", 760 ], 761 hdrs = [ 762 "include/mlir/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.h", 763 "include/mlir/Conversion/GPUToSPIRV/ConvertGPUToSPIRVPass.h", 764 ], 765 includes = [ 766 "include", 767 "lib/Conversions/GPUToSPIRV", 768 ], 769 deps = [ 770 ":GPUDialect", 771 ":GPUToSPIRVIncGen", 772 ":IR", 773 ":LoopOps", 774 ":Pass", 775 ":SPIRVDialect", 776 ":SPIRVLowering", 777 ":StandardToSPIRVConversions", 778 ":Support", 779 ":Transforms", 780 ], 781 alwayslink = 1, 782) 783 784gentbl( 785 name = "LLVMOpsIncGen", 786 strip_include_prefix = "include", 787 tbl_outs = [ 788 ( 789 "-gen-op-decls", 790 "include/mlir/Dialect/LLVMIR/LLVMOps.h.inc", 791 ), 792 ( 793 "-gen-op-defs", 794 "include/mlir/Dialect/LLVMIR/LLVMOps.cpp.inc", 795 ), 796 ( 797 "-gen-enum-decls", 798 "include/mlir/Dialect/LLVMIR/LLVMOpsEnums.h.inc", 799 ), 800 ( 801 "-gen-enum-defs", 802 "include/mlir/Dialect/LLVMIR/LLVMOpsEnums.cpp.inc", 803 ), 804 ], 805 tblgen = ":mlir-tblgen", 806 td_file = "include/mlir/Dialect/LLVMIR/LLVMOps.td", 807 td_srcs = [ 808 ":LLVMOpsTdFiles", 809 ], 810) 811 812gentbl( 813 name = "LLVMConversionIncGen", 814 strip_include_prefix = "include", 815 tbl_outs = [ 816 ( 817 "-gen-llvmir-conversions", 818 "include/mlir/Dialect/LLVMIR/LLVMConversions.inc", 819 ), 820 ( 821 "-gen-enum-to-llvmir-conversions", 822 "include/mlir/Dialect/LLVMIR/LLVMConversionEnumsToLLVM.inc", 823 ), 824 ( 825 "-gen-enum-from-llvmir-conversions", 826 "include/mlir/Dialect/LLVMIR/LLVMConversionEnumsFromLLVM.inc", 827 ), 828 ], 829 tblgen = ":mlir-tblgen", 830 td_file = "include/mlir/Dialect/LLVMIR/LLVMOps.td", 831 td_srcs = [ 832 ":LLVMOpsTdFiles", 833 ], 834) 835 836cc_library( 837 name = "NVVMDialect", 838 srcs = [ 839 "lib/Dialect/LLVMIR/IR/NVVMDialect.cpp", 840 ], 841 hdrs = [ 842 "include/mlir/Dialect/LLVMIR/NVVMDialect.h", 843 ], 844 includes = ["include"], 845 deps = [ 846 ":IR", 847 ":LLVMDialect", 848 ":NVVMOpsIncGen", 849 ":StandardOps", 850 ":Support", 851 "@llvm-project//llvm:asm_parser", 852 "@llvm-project//llvm:core", 853 "@llvm-project//llvm:support", 854 ], 855 alwayslink = 1, 856) 857 858filegroup( 859 name = "NVVMOpsTdFiles", 860 srcs = [ 861 "include/mlir/Dialect/LLVMIR/LLVMOpBase.td", 862 "include/mlir/Dialect/LLVMIR/NVVMOps.td", 863 ":OpBaseTdFiles", 864 ], 865) 866 867gentbl( 868 name = "NVVMOpsIncGen", 869 strip_include_prefix = "include", 870 tbl_outs = [ 871 ( 872 "-gen-op-decls", 873 "include/mlir/Dialect/LLVMIR/NVVMOps.h.inc", 874 ), 875 ( 876 "-gen-op-defs", 877 "include/mlir/Dialect/LLVMIR/NVVMOps.cpp.inc", 878 ), 879 ], 880 tblgen = ":mlir-tblgen", 881 td_file = "include/mlir/Dialect/LLVMIR/NVVMOps.td", 882 td_srcs = [ 883 ":NVVMOpsTdFiles", 884 ], 885) 886 887gentbl( 888 name = "NVVMConversionIncGen", 889 strip_include_prefix = "include", 890 tbl_outs = [ 891 ( 892 "-gen-llvmir-conversions", 893 "include/mlir/Dialect/LLVMIR/NVVMConversions.inc", 894 ), 895 ], 896 tblgen = ":mlir-tblgen", 897 td_file = "include/mlir/Dialect/LLVMIR/NVVMOps.td", 898 td_srcs = [ 899 ":NVVMOpsTdFiles", 900 ], 901) 902 903cc_library( 904 name = "ROCDLDialect", 905 srcs = [ 906 "lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp", 907 ], 908 hdrs = [ 909 "include/mlir/Dialect/LLVMIR/ROCDLDialect.h", 910 ], 911 includes = ["include"], 912 deps = [ 913 ":IR", 914 ":LLVMDialect", 915 ":ROCDLOpsIncGen", 916 ":StandardOps", 917 ":Support", 918 "@llvm-project//llvm:asm_parser", 919 "@llvm-project//llvm:core", 920 "@llvm-project//llvm:support", 921 ], 922 alwayslink = 1, 923) 924 925filegroup( 926 name = "ROCDLOpsTdFiles", 927 srcs = [ 928 "include/mlir/Dialect/LLVMIR/LLVMOpBase.td", 929 "include/mlir/Dialect/LLVMIR/ROCDLOps.td", 930 ":OpBaseTdFiles", 931 ], 932) 933 934gentbl( 935 name = "ROCDLOpsIncGen", 936 strip_include_prefix = "include", 937 tbl_outs = [ 938 ( 939 "-gen-op-decls", 940 "include/mlir/Dialect/LLVMIR/ROCDLOps.h.inc", 941 ), 942 ( 943 "-gen-op-defs", 944 "include/mlir/Dialect/LLVMIR/ROCDLOps.cpp.inc", 945 ), 946 ], 947 tblgen = ":mlir-tblgen", 948 td_file = "include/mlir/Dialect/LLVMIR/ROCDLOps.td", 949 td_srcs = [ 950 ":ROCDLOpsTdFiles", 951 ], 952) 953 954gentbl( 955 name = "ROCDLConversionIncGen", 956 strip_include_prefix = "include", 957 tbl_outs = [ 958 ( 959 "-gen-llvmir-conversions", 960 "include/mlir/Dialect/LLVMIR/ROCDLConversions.inc", 961 ), 962 ], 963 tblgen = ":mlir-tblgen", 964 td_file = "include/mlir/Dialect/LLVMIR/ROCDLOps.td", 965 td_srcs = [ 966 ":ROCDLOpsTdFiles", 967 ], 968) 969 970# TODO(gcmn): Update SPIRV dependencies so that they map better to cmake files. 971filegroup( 972 name = "SPIRVOpsTdFiles", 973 srcs = [ 974 "include/mlir/Analysis/CallInterfaces.td", 975 ":OpBaseTdFiles", 976 ] + glob(["include/mlir/Dialect/SPIRV/*.td"]), 977) 978 979gentbl( 980 name = "SPIRVOpsIncGen", 981 strip_include_prefix = "include", 982 tbl_outs = [ 983 ( 984 "-gen-op-decls", 985 "include/mlir/Dialect/SPIRV/SPIRVOps.h.inc", 986 ), 987 ( 988 "-gen-op-defs", 989 "include/mlir/Dialect/SPIRV/SPIRVOps.cpp.inc", 990 ), 991 ( 992 "-gen-op-doc", 993 "g3doc/Dialects/SPIRV/SPIRVOps.md", 994 ), 995 ( 996 "-gen-enum-decls", 997 "include/mlir/Dialect/SPIRV/SPIRVEnums.h.inc", 998 ), 999 ( 1000 "-gen-enum-defs", 1001 "include/mlir/Dialect/SPIRV/SPIRVEnums.cpp.inc", 1002 ), 1003 ( 1004 "-gen-spirv-enum-avail-decls", 1005 "include/mlir/Dialect/SPIRV/SPIRVEnumAvailability.h.inc", 1006 ), 1007 ( 1008 "-gen-spirv-enum-avail-defs", 1009 "include/mlir/Dialect/SPIRV/SPIRVEnumAvailability.cpp.inc", 1010 ), 1011 ( 1012 "-gen-spirv-capability-implication", 1013 "include/mlir/Dialect/SPIRV/SPIRVCapabilityImplication.inc", 1014 ), 1015 ], 1016 tblgen = ":mlir-tblgen", 1017 td_file = "include/mlir/Dialect/SPIRV/SPIRVOps.td", 1018 td_srcs = [ 1019 ":SPIRVOpsTdFiles", 1020 ], 1021) 1022 1023gentbl( 1024 name = "SPIRVCanonicalizationIncGen", 1025 strip_include_prefix = "lib/Dialect/SPIRV", 1026 tbl_outs = [ 1027 ( 1028 "-gen-rewriters", 1029 "lib/Dialect/SPIRV/SPIRVCanonicalization.inc", 1030 ), 1031 ], 1032 tblgen = ":mlir-tblgen", 1033 td_file = "lib/Dialect/SPIRV/SPIRVCanonicalization.td", 1034 td_srcs = [ 1035 ":SPIRVOpsTdFiles", 1036 "lib/Dialect/SPIRV/SPIRVCanonicalization.td", 1037 ], 1038) 1039 1040gentbl( 1041 name = "StandardToSPIRVGen", 1042 strip_include_prefix = "lib/Conversion/StandardToSPIRV", 1043 tbl_outs = [ 1044 ( 1045 "-gen-rewriters", 1046 "lib/Conversion/StandardToSPIRV/StandardToSPIRV.cpp.inc", 1047 ), 1048 ], 1049 tblgen = ":mlir-tblgen", 1050 td_file = "lib/Conversion/StandardToSPIRV/StandardToSPIRV.td", 1051 td_srcs = [ 1052 ":SPIRVOpsTdFiles", 1053 ":StdOpsTdFiles", 1054 ], 1055) 1056 1057gentbl( 1058 name = "SPIRVAvailabilityIncGen", 1059 strip_include_prefix = "include", 1060 tbl_outs = [ 1061 ( 1062 "-gen-avail-interface-decls", 1063 "include/mlir/Dialect/SPIRV/SPIRVAvailability.h.inc", 1064 ), 1065 ( 1066 "-gen-avail-interface-defs", 1067 "include/mlir/Dialect/SPIRV/SPIRVAvailability.cpp.inc", 1068 ), 1069 ( 1070 "-gen-spirv-avail-impls", 1071 "include/mlir/Dialect/SPIRV/SPIRVOpAvailabilityImpl.inc", 1072 ), 1073 ], 1074 tblgen = ":mlir-tblgen", 1075 td_file = "include/mlir/Dialect/SPIRV/SPIRVOps.td", 1076 td_srcs = [ 1077 ":SPIRVOpsTdFiles", 1078 ], 1079) 1080 1081gentbl( 1082 name = "SPIRVTargetAndABIStructGen", 1083 tbl_outs = [ 1084 ( 1085 "-gen-struct-attr-decls", 1086 "include/mlir/Dialect/SPIRV/TargetAndABI.h.inc", 1087 ), 1088 ( 1089 "-gen-struct-attr-defs", 1090 "include/mlir/Dialect/SPIRV/TargetAndABI.cpp.inc", 1091 ), 1092 ], 1093 tblgen = ":mlir-tblgen", 1094 td_file = "include/mlir/Dialect/SPIRV/TargetAndABI.td", 1095 td_srcs = [ 1096 ":SPIRVOpsTdFiles", 1097 ":StdOpsTdFiles", 1098 ], 1099) 1100 1101gentbl( 1102 name = "SPIRVOpUtilsIncGen", 1103 strip_include_prefix = "include", 1104 tbl_outs = [ 1105 ( 1106 "-gen-spirv-op-utils", 1107 "include/mlir/Dialect/SPIRV/SPIRVOpUtils.inc", 1108 ), 1109 ], 1110 tblgen = ":mlir-tblgen", 1111 td_file = "include/mlir/Dialect/SPIRV/SPIRVBase.td", 1112 td_srcs = [ 1113 ":SPIRVOpsTdFiles", 1114 ":SPIRVAvailabilityIncGen", 1115 ], 1116) 1117 1118gentbl( 1119 name = "SPIRVSerializationGen", 1120 strip_include_prefix = "include", 1121 tbl_outs = [ 1122 ( 1123 "-gen-spirv-serialization", 1124 "include/mlir/Dialect/SPIRV/SPIRVSerialization.inc", 1125 ), 1126 ], 1127 tblgen = ":mlir-tblgen", 1128 td_file = "include/mlir/Dialect/SPIRV/SPIRVOps.td", 1129 td_srcs = [ 1130 ":SPIRVOpsTdFiles", 1131 ], 1132) 1133 1134cc_library( 1135 name = "SPIRVDialect", 1136 srcs = glob( 1137 [ 1138 "lib/Dialect/SPIRV/*.cpp", 1139 "lib/Dialect/SPIRV/*.h", 1140 ], 1141 exclude = [ 1142 "lib/Dialect/**/DialectRegistration.cpp", 1143 "lib/Dialect/SPIRV/SPIRVLowering.cpp", 1144 ], 1145 ) + [ 1146 "include/mlir/Transforms/InliningUtils.h", 1147 ], 1148 hdrs = glob( 1149 [ 1150 "include/mlir/Dialect/SPIRV/*.h", 1151 ], 1152 exclude = [ 1153 "include/mlir/Dialect/SPIRV/SPIRVBinaryUtils.h", 1154 "include/mlir/Dialect/SPIRV/SPIRVLowering.h", 1155 ], 1156 ), 1157 includes = ["include"], 1158 deps = [ 1159 ":CommonFolders", 1160 ":IR", 1161 ":Parser", 1162 ":Pass", 1163 ":SPIRVAvailabilityIncGen", 1164 ":SPIRVCanonicalizationIncGen", 1165 ":SPIRVOpUtilsIncGen", 1166 ":SPIRVOpsIncGen", 1167 ":SPIRVSerializationGen", 1168 ":SPIRVTargetAndABIStructGen", 1169 ":Support", 1170 ":Transforms", 1171 "@llvm-project//llvm:support", 1172 ], 1173 alwayslink = 1, 1174) 1175 1176cc_library( 1177 name = "SPIRVLowering", 1178 srcs = [ 1179 "lib/Dialect/SPIRV/SPIRVLowering.cpp", 1180 "lib/Dialect/SPIRV/Transforms/DecorateSPIRVCompositeTypeLayoutPass.cpp", 1181 "lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp", 1182 ], 1183 hdrs = [ 1184 "include/mlir/Dialect/SPIRV/Passes.h", 1185 "include/mlir/Dialect/SPIRV/SPIRVLowering.h", 1186 "include/mlir/Dialect/SPIRV/TargetAndABI.h", 1187 ], 1188 includes = [ 1189 "include", 1190 ], 1191 deps = [ 1192 ":IR", 1193 ":Pass", 1194 ":SPIRVDialect", 1195 ":SPIRVTargetAndABIStructGen", 1196 ":StandardOps", 1197 ":Support", 1198 ":Transforms", 1199 "@llvm-project//llvm:support", 1200 ], 1201 alwayslink = 1, 1202) 1203 1204cc_library( 1205 name = "StandardToSPIRVConversions", 1206 srcs = glob([ 1207 "lib/Conversion/StandardToSPIRV/*.cpp", 1208 "lib/Conversion/StandardToSPIRV/*.h", 1209 ]), 1210 hdrs = glob([ 1211 "include/mlir/Conversion/StandardToSPIRV/*.h", 1212 ]), 1213 includes = [ 1214 "include", 1215 "lib/Conversion/StandardToSPIRV", 1216 ], 1217 deps = [ 1218 ":IR", 1219 ":Pass", 1220 ":SPIRVDialect", 1221 ":SPIRVLowering", 1222 ":StandardOps", 1223 ":StandardToSPIRVGen", 1224 ":Support", 1225 ":Transforms", 1226 "@llvm-project//llvm:support", 1227 ], 1228 alwayslink = 1, 1229) 1230 1231cc_library( 1232 name = "SPIRVSerialization", 1233 srcs = glob( 1234 [ 1235 "lib/Dialect/SPIRV/Serialization/*.cpp", 1236 ], 1237 exclude = [ 1238 "lib/Dialect/SPIRV/Serialization/TranslateRegistration.cpp", 1239 ], 1240 ), 1241 hdrs = [ 1242 "include/mlir/Dialect/SPIRV/SPIRVBinaryUtils.h", 1243 "include/mlir/Dialect/SPIRV/Serialization.h", 1244 ], 1245 includes = ["include"], 1246 deps = [ 1247 ":IR", 1248 ":SPIRVDialect", 1249 ":SPIRVOpUtilsIncGen", 1250 ":SPIRVOpsIncGen", 1251 ":SPIRVSerializationGen", 1252 ":Support", 1253 ":Transforms", 1254 "@llvm-project//llvm:support", 1255 ], 1256) 1257 1258cc_library( 1259 name = "SPIRVTranslateRegistration", 1260 srcs = [ 1261 "lib/Dialect/SPIRV/Serialization/TranslateRegistration.cpp", 1262 ], 1263 includes = ["include"], 1264 deps = [ 1265 ":IR", 1266 ":Parser", 1267 ":SPIRVDialect", 1268 ":SPIRVSerialization", 1269 ":Support", 1270 ":Translation", 1271 "@llvm-project//llvm:support", 1272 ], 1273 alwayslink = 1, 1274) 1275 1276cc_library( 1277 name = "SPIRVDialectRegistration", 1278 srcs = ["lib/Dialect/SPIRV/DialectRegistration.cpp"], 1279 deps = [ 1280 ":SPIRVDialect", 1281 ], 1282 alwayslink = 1, 1283) 1284 1285cc_library( 1286 name = "TransformUtils", 1287 srcs = glob([ 1288 "lib/Transforms/Utils/*.cpp", 1289 "lib/Transforms/Utils/*.h", 1290 ]), 1291 hdrs = glob([ 1292 "include/mlir/Transforms/*.h", 1293 ]), 1294 includes = ["include"], 1295 deps = [ 1296 ":AffineOps", 1297 ":Analysis", 1298 ":IR", 1299 ":LoopLikeOpInterfaceIncGen", 1300 ":LoopOps", 1301 ":StandardDialectRegistration", 1302 ":StandardOps", 1303 ":Support", 1304 "@llvm-project//llvm:support", 1305 ], 1306) 1307 1308gentbl( 1309 name = "LoopLikeOpInterfaceIncGen", 1310 strip_include_prefix = "include", 1311 tbl_outs = [ 1312 ( 1313 "-gen-op-interface-decls", 1314 "include/mlir/Transforms/LoopLikeInterface.h.inc", 1315 ), 1316 ( 1317 "-gen-op-interface-defs", 1318 "include/mlir/Transforms/LoopLikeInterface.cpp.inc", 1319 ), 1320 ], 1321 tblgen = ":mlir-tblgen", 1322 td_file = "include/mlir/Transforms/LoopLikeInterface.td", 1323 td_srcs = [ 1324 ":OpBaseTdFiles", 1325 ], 1326) 1327 1328cc_library( 1329 name = "Transforms", 1330 srcs = glob([ 1331 "lib/Transforms/*.cpp", 1332 "lib/Transforms/*.h", 1333 ]), 1334 hdrs = glob([ 1335 "include/mlir/Transforms/*.h", 1336 ]), 1337 includes = ["include"], 1338 deps = [ 1339 ":AffineOps", 1340 ":Analysis", 1341 ":EDSC", 1342 ":IR", 1343 ":LoopLikeOpInterfaceIncGen", 1344 ":LoopOps", 1345 ":Pass", 1346 ":StandardOps", 1347 ":Support", 1348 ":TransformUtils", 1349 ":VectorOps", 1350 "@llvm-project//llvm:support", 1351 ], 1352 alwayslink = 1, 1353) 1354 1355cc_library( 1356 name = "CommonFolders", 1357 srcs = [ 1358 ], 1359 hdrs = [ 1360 "include/mlir/Dialect/CommonFolders.h", 1361 ], 1362 includes = ["include"], 1363 deps = [ 1364 ":IR", 1365 "@llvm-project//llvm:support", 1366 ], 1367) 1368 1369cc_library( 1370 name = "LoopsToGPU", 1371 srcs = [ 1372 "lib/Conversion/LoopsToGPU/LoopsToGPU.cpp", 1373 ], 1374 hdrs = [ 1375 "include/mlir/Conversion/LoopsToGPU/LoopsToGPU.h", 1376 ], 1377 includes = ["include"], 1378 deps = [ 1379 ":AffineOps", 1380 ":AffineToStandardTransforms", 1381 ":GPUDialect", 1382 ":IR", 1383 ":LinalgTransforms", 1384 ":LoopOps", 1385 ":StandardOps", 1386 ":Support", 1387 ":TransformUtils", 1388 ":Transforms", 1389 "@llvm-project//llvm:support", 1390 ], 1391) 1392 1393cc_library( 1394 name = "LoopsToGPUPass", 1395 srcs = [ 1396 "lib/Conversion/LoopsToGPU/LoopsToGPUPass.cpp", 1397 ], 1398 hdrs = [ 1399 "include/mlir/Conversion/LoopsToGPU/LoopsToGPUPass.h", 1400 ], 1401 includes = ["include"], 1402 deps = [ 1403 ":AffineOps", 1404 ":LoopOps", 1405 ":LoopsToGPU", 1406 ":Pass", 1407 ":StandardOps", 1408 ":Support", 1409 "@llvm-project//llvm:support", 1410 ], 1411 alwayslink = 1, 1412) 1413 1414cc_library( 1415 name = "CFGTransforms", 1416 srcs = [ 1417 "lib/Conversion/LoopToStandard/ConvertLoopToStandard.cpp", 1418 ], 1419 hdrs = [ 1420 "include/mlir/Conversion/LoopToStandard/ConvertLoopToStandard.h", 1421 ], 1422 includes = ["include"], 1423 deps = [ 1424 ":IR", 1425 ":LLVMDialect", 1426 ":LoopOps", 1427 ":Pass", 1428 ":StandardOps", 1429 ":Support", 1430 ":TransformUtils", 1431 ":Transforms", 1432 ], 1433 alwayslink = 1, 1434) 1435 1436cc_library( 1437 name = "LLVMTransforms", 1438 srcs = [ 1439 "lib/Conversion/StandardToLLVM/ConvertStandardToLLVM.cpp", 1440 ], 1441 hdrs = [ 1442 "include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h", 1443 "include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVMPass.h", 1444 ], 1445 includes = ["include"], 1446 deps = [ 1447 ":IR", 1448 ":LLVMDialect", 1449 ":Pass", 1450 ":StandardOps", 1451 ":Support", 1452 ":TransformUtils", 1453 ":Transforms", 1454 "@llvm-project//llvm:core", 1455 "@llvm-project//llvm:support", 1456 ], 1457 alwayslink = 1, 1458) 1459 1460gentbl( 1461 name = "CallOpInterfacesIncGen", 1462 strip_include_prefix = "include", 1463 tbl_outs = [ 1464 ( 1465 "-gen-op-interface-decls", 1466 "include/mlir/Analysis/CallInterfaces.h.inc", 1467 ), 1468 ( 1469 "-gen-op-interface-defs", 1470 "include/mlir/Analysis/CallInterfaces.cpp.inc", 1471 ), 1472 ], 1473 tblgen = ":mlir-tblgen", 1474 td_file = "include/mlir/Analysis/CallInterfaces.td", 1475 td_srcs = [ 1476 ":OpBaseTdFiles", 1477 ], 1478) 1479 1480gentbl( 1481 name = "InferTypeOpInterfaceIncGen", 1482 strip_include_prefix = "include", 1483 tbl_outs = [ 1484 ( 1485 "-gen-op-interface-decls", 1486 "include/mlir/Analysis/InferTypeOpInterface.h.inc", 1487 ), 1488 ( 1489 "-gen-op-interface-defs", 1490 "include/mlir/Analysis/InferTypeOpInterface.cpp.inc", 1491 ), 1492 ], 1493 tblgen = ":mlir-tblgen", 1494 td_file = "include/mlir/Analysis/InferTypeOpInterface.td", 1495 td_srcs = [ 1496 ":OpBaseTdFiles", 1497 ], 1498) 1499 1500cc_library( 1501 name = "Analysis", 1502 srcs = glob( 1503 [ 1504 "lib/Analysis/*.cpp", 1505 "lib/Analysis/*.h", 1506 ], 1507 exclude = [ 1508 "lib/Analysis/Vector*.cpp", 1509 "lib/Analysis/Vector*.h", 1510 ], 1511 ), 1512 hdrs = glob( 1513 [ 1514 "include/mlir/Analysis/*.h", 1515 ], 1516 exclude = [ 1517 "include/mlir/Analysis/Vector*.h", 1518 ], 1519 ), 1520 includes = ["include"], 1521 deps = [ 1522 ":AffineOps", 1523 ":CallOpInterfacesIncGen", 1524 ":IR", 1525 ":InferTypeOpInterfaceIncGen", 1526 ":LoopOps", 1527 ":Pass", 1528 ":StandardOps", 1529 ":Support", 1530 "@llvm-project//llvm:support", 1531 ], 1532 alwayslink = 1, 1533) 1534 1535cc_library( 1536 name = "Translation", 1537 srcs = glob([ 1538 "lib/Translation/*.cpp", 1539 "lib/Translation/*.h", 1540 ]), 1541 hdrs = glob([ 1542 "include/mlir/*.h", 1543 ]), 1544 includes = ["include"], 1545 deps = [ 1546 ":IR", 1547 ":Parser", 1548 ":StandardOps", 1549 ":Support", 1550 "@llvm-project//llvm:support", 1551 ], 1552) 1553 1554cc_library( 1555 name = "LLVMIRModuleTranslation", 1556 srcs = [ 1557 "lib/Target/LLVMIR/ModuleTranslation.cpp", 1558 ], 1559 hdrs = [ 1560 "include/mlir/Target/LLVMIR/ModuleTranslation.h", 1561 ], 1562 includes = ["include"], 1563 deps = [ 1564 ":IR", 1565 ":LLVMConversionIncGen", 1566 ":LLVMDialect", 1567 ":Support", 1568 "@llvm-project//llvm:core", 1569 "@llvm-project//llvm:support", 1570 "@llvm-project//llvm:transform_utils", 1571 ], 1572) 1573 1574cc_library( 1575 name = "TargetLLVMIR", 1576 srcs = [ 1577 "lib/Target/LLVMIR/ConvertFromLLVMIR.cpp", 1578 "lib/Target/LLVMIR/ConvertToLLVMIR.cpp", 1579 ], 1580 hdrs = [ 1581 "include/mlir/Target/LLVMIR.h", 1582 ], 1583 includes = ["include"], 1584 deps = [ 1585 ":IR", 1586 ":LLVMConversionIncGen", 1587 ":LLVMDialect", 1588 ":LLVMIRModuleTranslation", 1589 ":Support", 1590 ":Translation", 1591 "@llvm-project//llvm:core", 1592 "@llvm-project//llvm:ir_reader", 1593 "@llvm-project//llvm:support", 1594 ], 1595 alwayslink = 1, 1596) 1597 1598cc_library( 1599 name = "TargetNVVMIR", 1600 srcs = [ 1601 "lib/Target/LLVMIR/ConvertToNVVMIR.cpp", 1602 ], 1603 hdrs = [ 1604 "include/mlir/Target/NVVMIR.h", 1605 ], 1606 includes = ["include"], 1607 deps = [ 1608 ":GPUDialect", 1609 ":IR", 1610 ":LLVMDialect", 1611 ":LLVMIRModuleTranslation", 1612 ":NVVMConversionIncGen", 1613 ":NVVMDialect", 1614 ":Support", 1615 ":Translation", 1616 "@llvm-project//llvm:core", 1617 "@llvm-project//llvm:support", 1618 ], 1619 alwayslink = 1, 1620) 1621 1622cc_library( 1623 name = "TargetROCDLIR", 1624 srcs = [ 1625 "lib/Target/LLVMIR/ConvertToROCDLIR.cpp", 1626 ], 1627 hdrs = [ 1628 "include/mlir/Target/ROCDLIR.h", 1629 ], 1630 includes = ["include"], 1631 deps = [ 1632 ":GPUDialect", 1633 ":IR", 1634 ":LLVMDialect", 1635 ":LLVMIRModuleTranslation", 1636 ":ROCDLConversionIncGen", 1637 ":ROCDLDialect", 1638 ":Support", 1639 ":Translation", 1640 "@llvm-project//llvm:core", 1641 "@llvm-project//llvm:support", 1642 ], 1643 alwayslink = 1, 1644) 1645 1646# TODO(zinenko): Update these so that we can simplify mapping to cmake. 1647cc_library( 1648 name = "ExecutionEngine", 1649 srcs = [ 1650 "lib/ExecutionEngine/ExecutionEngine.cpp", 1651 ], 1652 hdrs = [ 1653 "include/mlir/ExecutionEngine/ExecutionEngine.h", 1654 ], 1655 includes = ["include"], 1656 deps = [ 1657 ":IR", 1658 ":LLVMDialect", 1659 ":Support", 1660 ":TargetLLVMIR", 1661 ":Translation", 1662 "@llvm-project//llvm:bit_reader", 1663 "@llvm-project//llvm:bit_writer", 1664 "@llvm-project//llvm:core", 1665 "@llvm-project//llvm:execution_engine", 1666 "@llvm-project//llvm:mc", 1667 "@llvm-project//llvm:orc_jit", 1668 "@llvm-project//llvm:support", 1669 "@llvm-project//llvm:target", # fixdeps: keep 1670 "@llvm-project//llvm:transform_utils", 1671 "@llvm-project//llvm:x86_code_gen", # fixdeps: keep 1672 "@llvm-project//llvm:x86_disassembler", # fixdeps: keep 1673 ], 1674) 1675 1676cc_library( 1677 name = "ExecutionEngineUtils", 1678 srcs = [ 1679 "lib/ExecutionEngine/OptUtils.cpp", 1680 ], 1681 hdrs = [ 1682 "include/mlir/ExecutionEngine/OptUtils.h", 1683 ], 1684 includes = ["include"], 1685 deps = [ 1686 "@llvm-project//llvm:analysis", 1687 "@llvm-project//llvm:core", 1688 "@llvm-project//llvm:ipo", 1689 "@llvm-project//llvm:support", 1690 "@llvm-project//llvm:target", 1691 ], 1692) 1693 1694# TODO(jpienaar): Update this. 1695cc_library( 1696 name = "MlirOptLib", 1697 srcs = [ 1698 "lib/Support/MlirOptMain.cpp", 1699 ], 1700 hdrs = [ 1701 "include/mlir/Analysis/Passes.h", 1702 ], 1703 includes = ["include"], 1704 deps = [ 1705 ":Analysis", 1706 ":GPUToNVVMTransforms", 1707 ":GPUToROCDLTransforms", 1708 ":GPUToSPIRVTransforms", 1709 ":GPUTransforms", 1710 ":IR", 1711 ":LLVMDialect", 1712 ":LLVMTransforms", 1713 ":LinalgToLLVM", 1714 ":LinalgToSPIRV", 1715 ":NVVMDialect", 1716 ":Parser", 1717 ":Pass", 1718 ":QuantizerTransforms", 1719 ":SPIRVDialectRegistration", 1720 ":StandardToSPIRVConversions", 1721 ":Support", 1722 ":Transforms", 1723 ":VectorToLLVM", 1724 ":VectorToLoops", 1725 "@llvm-project//llvm:support", 1726 ], 1727) 1728 1729cc_library( 1730 name = "TranslateClParser", 1731 srcs = ["lib/Support/TranslateClParser.cpp"], 1732 hdrs = ["include/mlir/Support/TranslateClParser.h"], 1733 includes = ["include"], 1734 deps = [ 1735 ":Analysis", 1736 ":IR", 1737 ":Parser", 1738 ":Support", 1739 ":Translation", 1740 "@llvm-project//llvm:support", 1741 ], 1742) 1743 1744cc_library( 1745 name = "MlirTranslateMain", 1746 srcs = ["tools/mlir-translate/mlir-translate.cpp"], 1747 deps = [ 1748 ":IR", 1749 ":Parser", 1750 ":Support", 1751 ":TranslateClParser", 1752 ":Translation", 1753 "@llvm-project//llvm:support", 1754 ], 1755) 1756 1757cc_binary( 1758 name = "mlir-translate", 1759 deps = [ 1760 ":LoopDialectRegistration", 1761 ":MlirTranslateMain", 1762 ":SPIRVDialectRegistration", 1763 ":SPIRVTranslateRegistration", 1764 ":StandardDialectRegistration", 1765 ":TargetLLVMIR", 1766 ":TargetNVVMIR", 1767 ":TargetROCDLIR", 1768 ":VectorDialectRegistration", 1769 ], 1770) 1771 1772# TODO(jpienaar): This library should be removed. 1773cc_library( 1774 name = "MlirOptMain", 1775 srcs = [ 1776 "tools/mlir-opt/mlir-opt.cpp", 1777 ], 1778 deps = [ 1779 ":Analysis", 1780 ":MlirOptLib", 1781 ":Pass", 1782 ":Support", 1783 "@llvm-project//llvm:support", 1784 ], 1785) 1786 1787cc_binary( 1788 name = "mlir-opt", 1789 deps = [ 1790 ":AffineDialectRegistration", 1791 ":Analysis", 1792 ":FxpMathOps", 1793 ":FxpMathOpsDialectRegistration", 1794 ":GPUDialectRegistration", 1795 ":IR", 1796 ":LinalgDialectRegistration", 1797 ":LoopDialectRegistration", 1798 ":LoopsToGPUPass", 1799 ":MlirOptLib", 1800 ":MlirOptMain", 1801 ":OpenMPDialect", 1802 ":QuantOps", 1803 ":QuantOpsDialectRegistration", 1804 ":ROCDLDialect", 1805 ":StandardDialectRegistration", 1806 ":Transforms", 1807 ":VectorDialectRegistration", 1808 "@llvm-project//llvm:support", 1809 "@llvm-project//mlir/test:TestDialect", 1810 "@llvm-project//mlir/test:TestIR", 1811 "@llvm-project//mlir/test:TestPass", 1812 "@llvm-project//mlir/test:TestTransforms", 1813 "@llvm-project//mlir/test/Dialect/SPIRV:TestPasses", 1814 ], 1815) 1816 1817cc_library( 1818 name = "MlirJitRunner", 1819 srcs = ["lib/Support/JitRunner.cpp"], 1820 hdrs = ["include/mlir/Support/JitRunner.h"], 1821 includes = ["include"], 1822 deps = [ 1823 ":AffineDialectRegistration", 1824 ":CFGTransforms", 1825 ":ExecutionEngine", 1826 ":ExecutionEngineUtils", 1827 ":IR", 1828 ":LLVMDialect", 1829 ":Parser", 1830 ":Pass", 1831 ":Support", 1832 "@llvm-project//llvm:core", 1833 "@llvm-project//llvm:orc_jit", 1834 "@llvm-project//llvm:support", 1835 ], 1836 alwayslink = 1, 1837) 1838 1839cc_binary( 1840 name = "mlir-cpu-runner", 1841 srcs = ["tools/mlir-cpu-runner/mlir-cpu-runner.cpp"], 1842 linkopts = ["-ldl"], 1843 deps = [":MlirJitRunner"], 1844) 1845 1846cc_binary( 1847 name = "tools/libcuda-runtime-wrappers.so", 1848 srcs = ["tools/mlir-cuda-runner/cuda-runtime-wrappers.cpp"], 1849 linkshared = True, 1850 deps = [ 1851 "//third_party/gpus/cuda:cuda_headers", 1852 "//third_party/gpus/cuda:cuda_runtime", 1853 "//third_party/gpus/cuda:libcuda", 1854 "@llvm-project//llvm:support", 1855 ], 1856) 1857 1858cc_binary( 1859 name = "mlir-cuda-runner", 1860 srcs = ["tools/mlir-cuda-runner/mlir-cuda-runner.cpp"], 1861 data = [ 1862 ":tools/libcuda-runtime-wrappers.so", 1863 "@llvm-project//mlir/test/mlir-cpu-runner:libmlir_runner_utils.so", 1864 ], 1865 deps = [ 1866 ":GPUDialect", 1867 ":GPUDialectRegistration", 1868 ":GPUToNVVMTransforms", 1869 ":GPUToROCDLTransforms", 1870 ":GPUTransforms", 1871 ":IR", 1872 ":LLVMDialect", 1873 ":LLVMTransforms", 1874 ":MlirJitRunner", 1875 ":NVVMDialect", 1876 ":Pass", 1877 ":Transforms", 1878 "//devtools/build/runtime:get_runfiles_dir", 1879 "//third_party/gpus/cuda:cuda_headers", 1880 "//third_party/gpus/cuda:cuda_runtime", 1881 "//third_party/gpus/cuda:libcuda", 1882 "@llvm-project//llvm:support", 1883 ], 1884) 1885 1886cc_library( 1887 name = "TableGen", 1888 srcs = glob(["lib/TableGen/*.cpp"]), 1889 hdrs = glob(["include/mlir/TableGen/*.h"]), 1890 includes = ["include"], 1891 deps = [ 1892 ":Support", 1893 "@llvm-project//llvm:support", 1894 "@llvm-project//llvm:tablegen", 1895 ], 1896) 1897 1898cc_library( 1899 name = "MlirTableGenMain", 1900 srcs = [ 1901 "tools/mlir-tblgen/mlir-tblgen.cpp", 1902 ], 1903 includes = ["include"], 1904 deps = [ 1905 ":Support", 1906 ":TableGen", 1907 "@llvm-project//llvm:config", 1908 "@llvm-project//llvm:support", 1909 "@llvm-project//llvm:tablegen", 1910 ], 1911) 1912 1913cc_binary( 1914 name = "mlir-tblgen", 1915 srcs = glob([ 1916 "tools/mlir-tblgen/*.h", 1917 "tools/mlir-tblgen/*.cpp", 1918 ]), 1919 linkopts = [ 1920 "-lm", 1921 "-lpthread", 1922 ], 1923 deps = [ 1924 ":MlirTableGenMain", 1925 ":Support", 1926 ":TableGen", 1927 "@llvm-project//llvm:config", 1928 "@llvm-project//llvm:support", 1929 "@llvm-project//llvm:tablegen", 1930 ], 1931) 1932 1933## OpenMP dialect 1934gentbl( 1935 name = "OpenMPOpsIncGen", 1936 strip_include_prefix = "include", 1937 tbl_outs = [ 1938 ( 1939 "-gen-op-decls", 1940 "include/mlir/Dialect/OpenMP/OpenMPOps.h.inc", 1941 ), 1942 ( 1943 "-gen-op-defs", 1944 "include/mlir/Dialect/OpenMP/OpenMPOps.cpp.inc", 1945 ), 1946 ( 1947 "-gen-op-doc", 1948 "g3doc/Dialects/OpenMP/OpenMPOps.md", 1949 ), 1950 ], 1951 tblgen = ":mlir-tblgen", 1952 td_file = "include/mlir/Dialect/OpenMP/OpenMPOps.td", 1953 td_srcs = [ 1954 ":OpBaseTdFiles", 1955 ], 1956) 1957 1958cc_library( 1959 name = "OpenMPDialect", 1960 srcs = glob( 1961 [ 1962 "lib/Dialect/OpenMP/IR/*.cpp", 1963 "lib/Dialect/OpenMP/IR/*.h", 1964 ], 1965 ), 1966 hdrs = glob([ 1967 "include/mlir/Dialect/OpenMP/*.h", 1968 ]), 1969 includes = ["include"], 1970 deps = [ 1971 ":IR", 1972 ":OpenMPOpsIncGen", 1973 "@llvm-project//llvm:support", 1974 ], 1975 alwayslink = 1, 1976) 1977 1978filegroup( 1979 name = "QuantizationOpsTdFiles", 1980 srcs = [ 1981 "include/mlir/Dialect/QuantOps/QuantOps.td", 1982 "include/mlir/Dialect/QuantOps/QuantPredicates.td", 1983 ":OpBaseTdFiles", 1984 ], 1985) 1986 1987## QuantOps dialect 1988gentbl( 1989 name = "QuantOpsIncGen", 1990 strip_include_prefix = "include", 1991 tbl_outs = [ 1992 ( 1993 "-gen-op-decls", 1994 "include/mlir/Dialect/QuantOps/QuantOps.h.inc", 1995 ), 1996 ( 1997 "-gen-op-defs", 1998 "include/mlir/Dialect/QuantOps/QuantOps.cpp.inc", 1999 ), 2000 ( 2001 "-gen-op-doc", 2002 "g3doc/Dialects/QuantOps/QuantOps.md", 2003 ), 2004 ], 2005 tblgen = ":mlir-tblgen", 2006 td_file = "include/mlir/Dialect/QuantOps/QuantOps.td", 2007 td_srcs = [ 2008 ":QuantizationOpsTdFiles", 2009 ], 2010) 2011 2012cc_library( 2013 name = "QuantOps", 2014 srcs = [ 2015 "lib/Dialect/QuantOps/IR/QuantOps.cpp", 2016 "lib/Dialect/QuantOps/IR/QuantTypes.cpp", 2017 "lib/Dialect/QuantOps/IR/TypeDetail.h", 2018 "lib/Dialect/QuantOps/IR/TypeParser.cpp", 2019 "lib/Dialect/QuantOps/Transforms/ConvertConst.cpp", 2020 "lib/Dialect/QuantOps/Transforms/ConvertSimQuant.cpp", 2021 "lib/Dialect/QuantOps/Utils/FakeQuantSupport.cpp", 2022 "lib/Dialect/QuantOps/Utils/QuantizeUtils.cpp", 2023 "lib/Dialect/QuantOps/Utils/UniformSupport.cpp", 2024 ], 2025 hdrs = [ 2026 "include/mlir/Dialect/QuantOps/FakeQuantSupport.h", 2027 "include/mlir/Dialect/QuantOps/Passes.h", 2028 "include/mlir/Dialect/QuantOps/QuantOps.h", 2029 "include/mlir/Dialect/QuantOps/QuantTypes.h", 2030 "include/mlir/Dialect/QuantOps/QuantizeUtils.h", 2031 "include/mlir/Dialect/QuantOps/UniformSupport.h", 2032 ], 2033 includes = ["include"], 2034 deps = [ 2035 ":Analysis", 2036 ":IR", 2037 ":Pass", 2038 ":QuantOpsIncGen", 2039 ":StandardOps", 2040 ":Support", 2041 ":TransformUtils", 2042 "@llvm-project//llvm:support", 2043 ], 2044 alwayslink = 1, 2045) 2046 2047cc_library( 2048 name = "QuantOpsDialectRegistration", 2049 srcs = ["lib/Dialect/QuantOps/IR/DialectRegistration.cpp"], 2050 deps = [":QuantOps"], 2051 alwayslink = 1, 2052) 2053 2054filegroup( 2055 name = "FxpMathOpsTdFiles", 2056 srcs = [ 2057 "include/mlir/Dialect/FxpMathOps/FxpMathOps.td", 2058 "include/mlir/Dialect/QuantOps/QuantPredicates.td", 2059 ":OpBaseTdFiles", 2060 ], 2061) 2062 2063## FxpMathOps dialect 2064gentbl( 2065 name = "FxpMathOpsIncGen", 2066 strip_include_prefix = "include", 2067 tbl_outs = [ 2068 ( 2069 "-gen-op-decls", 2070 "include/mlir/Dialect/FxpMathOps/FxpMathOps.h.inc", 2071 ), 2072 ( 2073 "-gen-op-defs", 2074 "include/mlir/Dialect/FxpMathOps/FxpMathOps.cpp.inc", 2075 ), 2076 ( 2077 "-gen-op-doc", 2078 "g3doc/Dialects/FxpMathOps/FxpMathOps.md", 2079 ), 2080 ], 2081 tblgen = ":mlir-tblgen", 2082 td_file = "include/mlir/Dialect/FxpMathOps/FxpMathOps.td", 2083 td_srcs = [ 2084 ":FxpMathOpsTdFiles", 2085 ], 2086) 2087 2088cc_library( 2089 name = "FxpMathOps", 2090 srcs = [ 2091 "lib/Dialect/FxpMathOps/IR/FxpMathOps.cpp", 2092 "lib/Dialect/FxpMathOps/Transforms/LowerUniformRealMath.cpp", 2093 "lib/Dialect/FxpMathOps/Transforms/UniformKernelUtils.h", 2094 ], 2095 hdrs = [ 2096 "include/mlir/Dialect/FxpMathOps/FxpMathOps.h", 2097 "include/mlir/Dialect/FxpMathOps/Passes.h", 2098 ], 2099 includes = ["include"], 2100 deps = [ 2101 ":Analysis", 2102 ":FxpMathOpsIncGen", 2103 ":IR", 2104 ":Pass", 2105 ":QuantOps", 2106 ":StandardOps", 2107 ":Support", 2108 ":TransformUtils", 2109 "@llvm-project//llvm:support", 2110 ], 2111 alwayslink = 1, 2112) 2113 2114cc_library( 2115 name = "FxpMathOpsDialectRegistration", 2116 srcs = ["lib/Dialect/FxpMathOps/IR/DialectRegistration.cpp"], 2117 deps = [":FxpMathOps"], 2118 alwayslink = 1, 2119) 2120 2121filegroup( 2122 name = "LinalgOpsTdFiles", 2123 srcs = [ 2124 "include/mlir/Dialect/Linalg/IR/LinalgBase.td", 2125 "include/mlir/Dialect/Linalg/IR/LinalgOps.td", 2126 "include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td", 2127 ":AffineOpsTdFiles", 2128 ":OpBaseTdFiles", 2129 ], 2130) 2131 2132gentbl( 2133 name = "LinalgOpsIncGen", 2134 strip_include_prefix = "include", 2135 tbl_outs = [ 2136 ( 2137 "-gen-op-decls", 2138 "include/mlir/Dialect/Linalg/IR/LinalgOps.h.inc", 2139 ), 2140 ( 2141 "-gen-op-defs", 2142 "include/mlir/Dialect/Linalg/IR/LinalgOps.cpp.inc", 2143 ), 2144 ], 2145 tblgen = ":mlir-tblgen", 2146 td_file = "include/mlir/Dialect/Linalg/IR/LinalgOps.td", 2147 td_srcs = [ 2148 ":LinalgOpsTdFiles", 2149 ], 2150) 2151 2152filegroup( 2153 name = "LinalgStructuredOpsTdFiles", 2154 srcs = [ 2155 "include/mlir/Dialect/Linalg/IR/LinalgBase.td", 2156 "include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td", 2157 ":AffineOpsTdFiles", 2158 ":OpBaseTdFiles", 2159 ], 2160) 2161 2162gentbl( 2163 name = "LinalgStructuredOpsIncGen", 2164 strip_include_prefix = "include", 2165 tbl_outs = [ 2166 ( 2167 "-gen-op-decls", 2168 "include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.h.inc", 2169 ), 2170 ( 2171 "-gen-op-defs", 2172 "include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.cpp.inc", 2173 ), 2174 ( 2175 "-gen-op-interface-decls", 2176 "include/mlir/Dialect/Linalg/IR/LinalgStructuredOpsInterfaces.h.inc", 2177 ), 2178 ( 2179 "-gen-op-interface-defs", 2180 "include/mlir/Dialect/Linalg/IR/LinalgStructuredOpsInterfaces.cpp.inc", 2181 ), 2182 ], 2183 tblgen = ":mlir-tblgen", 2184 td_file = "include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td", 2185 td_srcs = [ 2186 ":LinalgStructuredOpsTdFiles", 2187 ], 2188) 2189 2190filegroup( 2191 name = "LinalgDocTdFiles", 2192 srcs = [ 2193 "include/mlir/Dialect/Linalg/IR/LinalgDoc.td", 2194 ":LinalgOpsTdFiles", 2195 ], 2196) 2197 2198gentbl( 2199 name = "LinalgDocIncGen", 2200 strip_include_prefix = "include", 2201 tbl_outs = [ 2202 ( 2203 "-gen-op-doc", 2204 "g3doc/Dialects/Linalg/LinalgOps.md", 2205 ), 2206 ], 2207 tblgen = ":mlir-tblgen", 2208 td_file = "include/mlir/Dialect/Linalg/IR/LinalgDoc.td", 2209 td_srcs = [ 2210 ":LinalgDocTdFiles", 2211 ], 2212) 2213 2214filegroup( 2215 name = "LinalgTransformPatternsTdFiles", 2216 srcs = [ 2217 "include/mlir/Dialect/Linalg/Transforms/LinalgTransformPatterns.td", 2218 ":AffineOpsTdFiles", 2219 ":LinalgOpsTdFiles", 2220 ":LinalgStructuredOpsTdFiles", 2221 ":OpBaseTdFiles", 2222 ], 2223) 2224 2225gentbl( 2226 name = "LinalgTransformPatternsIncGen", 2227 tbl_outs = [ 2228 ( 2229 "-gen-rewriters", 2230 "include/mlir/Dialect/Linalg/Transforms/LinalgTransformPatterns.h.inc", 2231 ), 2232 ], 2233 tblgen = ":mlir-tblgen", 2234 td_file = "include/mlir/Dialect/Linalg/Transforms/LinalgTransformPatterns.td", 2235 td_srcs = [ 2236 ":LinalgTransformPatternsTdFiles", 2237 ], 2238) 2239 2240cc_library( 2241 name = "LinalgToLLVM", 2242 srcs = glob([ 2243 "lib/Conversion/LinalgToLLVM/*.cpp", 2244 "lib/Conversion/LinalgToLLVM/*.h", 2245 ]), 2246 hdrs = glob([ 2247 "include/mlir/Conversion/LinalgToLLVM/*.h", 2248 ]), 2249 includes = ["include"], 2250 deps = [ 2251 ":AffineToStandardTransforms", 2252 ":Analysis", 2253 ":CFGTransforms", 2254 ":EDSC", 2255 ":IR", 2256 ":LLVMDialect", 2257 ":LLVMTransforms", 2258 ":LinalgOps", 2259 ":LinalgTransforms", 2260 ":Pass", 2261 ":StandardOps", 2262 ":Support", 2263 ":Transforms", 2264 ":VectorToLLVM", 2265 "@llvm-project//llvm:core", 2266 "@llvm-project//llvm:support", 2267 ], 2268 alwayslink = 1, 2269) 2270 2271cc_library( 2272 name = "LinalgToSPIRV", 2273 srcs = glob([ 2274 "lib/Conversion/LinalgToSPIRV/*.cpp", 2275 "lib/Conversion/LinalgToSPIRV/*.h", 2276 ]), 2277 hdrs = glob([ 2278 "include/mlir/Conversion/LinalgToSPIRV/*.h", 2279 ]), 2280 includes = ["include"], 2281 deps = [ 2282 ":DialectUtils", 2283 ":IR", 2284 ":LinalgOps", 2285 ":LinalgTransforms", 2286 ":Pass", 2287 ":SPIRVDialect", 2288 ":SPIRVLowering", 2289 ":StandardOps", 2290 ], 2291 alwayslink = 1, 2292) 2293 2294cc_library( 2295 name = "LinalgOps", 2296 srcs = [ 2297 "lib/Dialect/Linalg/IR/LinalgOps.cpp", 2298 "lib/Dialect/Linalg/IR/LinalgTypes.cpp", 2299 ], 2300 hdrs = [ 2301 "include/mlir/Dialect/Linalg/IR/LinalgOps.h", 2302 "include/mlir/Dialect/Linalg/IR/LinalgTraits.h", 2303 "include/mlir/Dialect/Linalg/IR/LinalgTypes.h", 2304 ], 2305 includes = ["include"], 2306 deps = [ 2307 ":DialectUtils", 2308 ":IR", 2309 ":LinalgOpsIncGen", 2310 ":LinalgStructuredOpsIncGen", 2311 ":Parser", 2312 ":StandardOps", 2313 ":Support", 2314 "@llvm-project//llvm:support", 2315 ], 2316 alwayslink = 1, 2317) 2318 2319cc_library( 2320 name = "LinalgTransforms", 2321 srcs = [ 2322 "lib/Dialect/Linalg/Analysis/DependenceAnalysis.cpp", 2323 "lib/Dialect/Linalg/EDSC/Builders.cpp", 2324 "lib/Dialect/Linalg/Transforms/Fusion.cpp", 2325 "lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp", 2326 "lib/Dialect/Linalg/Transforms/LinalgTransforms.cpp", 2327 "lib/Dialect/Linalg/Transforms/Promotion.cpp", 2328 "lib/Dialect/Linalg/Transforms/Tiling.cpp", 2329 "lib/Dialect/Linalg/Utils/Utils.cpp", 2330 ], 2331 hdrs = [ 2332 "include/mlir/Dialect/Linalg/Analysis/DependenceAnalysis.h", 2333 "include/mlir/Dialect/Linalg/EDSC/Builders.h", 2334 "include/mlir/Dialect/Linalg/EDSC/Intrinsics.h", 2335 "include/mlir/Dialect/Linalg/Passes.h", 2336 "include/mlir/Dialect/Linalg/Transforms/LinalgTransforms.h", 2337 "include/mlir/Dialect/Linalg/Utils/Utils.h", 2338 ], 2339 includes = ["include"], 2340 deps = [ 2341 ":AffineOps", 2342 ":AffineToStandardTransforms", 2343 ":Analysis", 2344 ":CFGTransforms", 2345 ":DialectUtils", 2346 ":EDSC", 2347 ":IR", 2348 ":LLVMDialect", 2349 ":LLVMTransforms", 2350 ":LinalgOps", 2351 ":LinalgOpsIncGen", 2352 ":LinalgStructuredOpsIncGen", 2353 ":LinalgTransformPatternsIncGen", 2354 ":LoopOps", 2355 ":Parser", 2356 ":Pass", 2357 ":StandardOps", 2358 ":Support", 2359 ":TransformUtils", 2360 ":Transforms", 2361 ":VectorOps", 2362 "@llvm-project//llvm:core", 2363 "@llvm-project//llvm:support", 2364 ], 2365 alwayslink = 1, 2366) 2367 2368cc_library( 2369 name = "LinalgDialectRegistration", 2370 srcs = ["lib/Dialect/Linalg/IR/LinalgRegistration.cpp"], 2371 deps = [":LinalgOps"], 2372 alwayslink = 1, 2373) 2374 2375cc_library( 2376 name = "QuantizerSupportLib", 2377 srcs = glob([ 2378 "lib/Quantizer/Configurations/*.cpp", 2379 "lib/Quantizer/Support/*.cpp", 2380 "lib/Quantizer/Configurations/*.h", 2381 "lib/Quantizer/Support/*.h", 2382 ]), 2383 hdrs = glob([ 2384 "include/mlir/Quantizer/Configurations/*.h", 2385 "include/mlir/Quantizer/Support/*.h", 2386 ]), 2387 includes = ["include"], 2388 deps = [ 2389 ":FxpMathOps", 2390 ":IR", 2391 ":QuantOps", 2392 ":StandardOps", 2393 ":Support", 2394 "@llvm-project//llvm:support", 2395 ], 2396) 2397 2398cc_library( 2399 name = "QuantizerTransforms", 2400 srcs = glob([ 2401 "lib/Quantizer/Transforms/*.cpp", 2402 "lib/Quantizer/Transforms/*.h", 2403 ]), 2404 hdrs = glob([ 2405 "include/mlir/Quantizer/Transforms/*.h", 2406 ]), 2407 includes = ["include"], 2408 deps = [ 2409 ":IR", 2410 ":Pass", 2411 ":QuantOps", 2412 ":QuantizerSupportLib", 2413 ":Support", 2414 "@llvm-project//llvm:support", 2415 ], 2416 alwayslink = 1, 2417) 2418 2419filegroup( 2420 name = "VectorOpsTdFiles", 2421 srcs = [ 2422 "include/mlir/Dialect/VectorOps/VectorOps.td", 2423 ":AffineOpsTdFiles", 2424 ":OpBaseTdFiles", 2425 ], 2426) 2427 2428gentbl( 2429 name = "VectorOpsIncGen", 2430 strip_include_prefix = "include", 2431 tbl_outs = [ 2432 ( 2433 "-gen-op-decls", 2434 "include/mlir/Dialect/VectorOps/VectorOps.h.inc", 2435 ), 2436 ( 2437 "-gen-op-defs", 2438 "include/mlir/Dialect/VectorOps/VectorOps.cpp.inc", 2439 ), 2440 ( 2441 "-gen-op-doc", 2442 "g3doc/Dialects/Vector/VectorOps.md", 2443 ), 2444 ], 2445 tblgen = ":mlir-tblgen", 2446 td_file = "include/mlir/Dialect/VectorOps/VectorOps.td", 2447 td_srcs = [ 2448 ":VectorOpsTdFiles", 2449 ], 2450) 2451 2452filegroup( 2453 name = "VectorTransformPatternsTdFiles", 2454 srcs = [ 2455 "include/mlir/Dialect/VectorOps/VectorTransformPatterns.td", 2456 ":AffineOpsTdFiles", 2457 ":LinalgOpsTdFiles", 2458 ":LinalgStructuredOpsTdFiles", 2459 ":OpBaseTdFiles", 2460 ":StdOpsTdFiles", 2461 ":VectorOpsTdFiles", 2462 ], 2463) 2464 2465gentbl( 2466 name = "VectorTransformPatternsIncGen", 2467 tbl_outs = [ 2468 ( 2469 "-gen-rewriters", 2470 "include/mlir/Dialect/VectorOps/VectorTransformPatterns.h.inc", 2471 ), 2472 ], 2473 tblgen = ":mlir-tblgen", 2474 td_file = "include/mlir/Dialect/VectorOps/VectorTransformPatterns.td", 2475 td_srcs = [ 2476 ":VectorTransformPatternsTdFiles", 2477 ], 2478) 2479 2480cc_library( 2481 name = "VectorToLLVM", 2482 srcs = glob([ 2483 "lib/Conversion/VectorToLLVM/*.cpp", 2484 "lib/Conversion/VectorToLLVM/*.h", 2485 ]), 2486 hdrs = glob([ 2487 "include/mlir/Conversion/VectorToLLVM/*.h", 2488 ]), 2489 includes = ["include"], 2490 deps = [ 2491 ":EDSC", 2492 ":IR", 2493 ":LLVMDialect", 2494 ":LLVMTransforms", 2495 ":Pass", 2496 ":StandardOps", 2497 ":Support", 2498 ":Transforms", 2499 ":VectorOps", 2500 "@llvm-project//llvm:core", 2501 "@llvm-project//llvm:support", 2502 ], 2503 alwayslink = 1, 2504) 2505 2506cc_library( 2507 name = "VectorToLoops", 2508 srcs = glob([ 2509 "lib/Conversion/VectorToLoops/*.cpp", 2510 "lib/Conversion/VectorToLoops/*.h", 2511 ]), 2512 hdrs = glob([ 2513 "include/mlir/Conversion/VectorToLoops/*.h", 2514 ]), 2515 includes = ["include"], 2516 deps = [ 2517 ":EDSC", 2518 ":IR", 2519 ":LLVMDialect", 2520 ":LLVMTransforms", 2521 ":Pass", 2522 ":StandardOps", 2523 ":Support", 2524 ":Transforms", 2525 ":VectorOps", 2526 "@llvm-project//llvm:core", 2527 "@llvm-project//llvm:support", 2528 ], 2529 alwayslink = 1, 2530) 2531 2532gentbl( 2533 name = "tpu_intrinsics_patterns_target", 2534 strip_include_prefix = "include", 2535 tbl_outs = [("-gen-llvmir-intrinsics -dialect-opclass-base LLVM_TpuOp -llvmir-intrinsics-filter int_tpu", "include/mlir/IR/llvm_tpu_ops_gen.td.inc")], 2536 tblgen = ":mlir-tblgen", 2537 td_file = "//third_party/llvm/llvm-project/llvm:include/llvm/IR/Intrinsics.td", 2538 td_includes = ["third_party/llvm/llvm-project/llvm/include/"], 2539 td_srcs = ["//third_party/llvm/llvm-project/llvm:common_target_td_sources"], 2540) 2541 2542# To reference all tablegen files here when checking for updates to them. 2543filegroup( 2544 name = "TdFiles", 2545 srcs = glob(["**/*.td"]), 2546) 2547 2548exports_files( 2549 [ 2550 "include/mlir/Analysis/CallInterfaces.h", 2551 "include/mlir/Analysis/CallInterfaces.td", 2552 "include/mlir/Dialect/LLVMIR/LLVMOpBase.td", 2553 "include/mlir/Dialect/StandardOps/Ops.td", 2554 "include/mlir/IR/OpAsmInterface.td", 2555 "include/mlir/IR/OpBase.td", 2556 "include/mlir/Transforms/InliningUtils.h", 2557 ], 2558 visibility = ["@llvm-project//mlir:friends"], 2559) 2560 2561exports_files( 2562 [ 2563 "include/mlir/Analysis/InferTypeOpInterface.td", 2564 "include/mlir/Transforms/LoopLikeInterface.td", 2565 ], 2566 visibility = ["@llvm-project//mlir:friends"], 2567) 2568