github.com/johnnyeven/libtools@v0.0.0-20191126065708-61829c1adf46/third_party/mlir/BUILD (about) 1 # Description: 2 # The MLIR "Multi-Level Intermediate Representation" Compiler Infrastructure 3 4 licenses(["notice"]) 5 6 package( 7 default_visibility = [":friends"], 8 features = ["-layering_check"], 9 ) 10 11 package_group( 12 name = "subpackages", 13 packages = ["//..."], 14 ) 15 16 # Before adding a project here, please read go/mlir-sla 17 # In particular the OWNERS file of the dependent project should be updated. 18 package_group( 19 name = "friends", 20 includes = ["@org_tensorflow//tensorflow/compiler/mlir:subpackages"], 21 packages = [ 22 "//...", 23 "//learning/glassbox/evaluation/compiler/...", 24 "//tensorflow/compiler/xla/service/gpu/mlir/...", 25 ], 26 ) 27 28 exports_files([ 29 "run_lit.sh", 30 "LICENSE.TXT", 31 ]) 32 33 load(":tblgen.bzl", "gentbl") 34 35 cc_library( 36 name = "IR", 37 srcs = [ 38 "lib/IR/AffineExpr.cpp", 39 "lib/IR/AffineExprDetail.h", 40 "lib/IR/AffineMap.cpp", 41 "lib/IR/AffineMapDetail.h", 42 "lib/IR/AsmPrinter.cpp", 43 "lib/IR/AttributeDetail.h", 44 "lib/IR/Attributes.cpp", 45 "lib/IR/Block.cpp", 46 "lib/IR/Builders.cpp", 47 "lib/IR/Diagnostics.cpp", 48 "lib/IR/Dialect.cpp", 49 "lib/IR/Function.cpp", 50 "lib/IR/FunctionSupport.cpp", 51 "lib/IR/IntegerSet.cpp", 52 "lib/IR/IntegerSetDetail.h", 53 "lib/IR/Location.cpp", 54 "lib/IR/LocationDetail.h", 55 "lib/IR/MLIRContext.cpp", 56 "lib/IR/Module.cpp", 57 "lib/IR/Operation.cpp", 58 "lib/IR/OperationSupport.cpp", 59 "lib/IR/PatternMatch.cpp", 60 "lib/IR/Region.cpp", 61 "lib/IR/StandardTypes.cpp", 62 "lib/IR/SymbolTable.cpp", 63 "lib/IR/TypeDetail.h", 64 "lib/IR/TypeUtilities.cpp", 65 "lib/IR/Types.cpp", 66 "lib/IR/Value.cpp", 67 "lib/IR/Visitors.cpp", 68 ], 69 hdrs = [ 70 "include/mlir/IR/AffineExpr.h", 71 "include/mlir/IR/AffineExprVisitor.h", 72 "include/mlir/IR/AffineMap.h", 73 "include/mlir/IR/AttributeSupport.h", 74 "include/mlir/IR/Attributes.h", 75 "include/mlir/IR/Block.h", 76 "include/mlir/IR/BlockAndValueMapping.h", 77 "include/mlir/IR/Builders.h", 78 "include/mlir/IR/Diagnostics.h", 79 "include/mlir/IR/Dialect.h", 80 "include/mlir/IR/DialectHooks.h", 81 "include/mlir/IR/DialectInterface.h", 82 "include/mlir/IR/DialectSymbolRegistry.def", 83 "include/mlir/IR/Function.h", 84 "include/mlir/IR/FunctionSupport.h", 85 "include/mlir/IR/Identifier.h", 86 "include/mlir/IR/IntegerSet.h", 87 "include/mlir/IR/Location.h", 88 "include/mlir/IR/MLIRContext.h", 89 "include/mlir/IR/Matchers.h", 90 "include/mlir/IR/Module.h", 91 "include/mlir/IR/OpDefinition.h", 92 "include/mlir/IR/OpImplementation.h", 93 "include/mlir/IR/Operation.h", 94 "include/mlir/IR/OperationSupport.h", 95 "include/mlir/IR/PatternMatch.h", 96 "include/mlir/IR/Region.h", 97 "include/mlir/IR/RegionGraphTraits.h", 98 "include/mlir/IR/StandardTypes.h", 99 "include/mlir/IR/StorageUniquerSupport.h", 100 "include/mlir/IR/SymbolTable.h", 101 "include/mlir/IR/TypeSupport.h", 102 "include/mlir/IR/TypeUtilities.h", 103 "include/mlir/IR/Types.h", 104 "include/mlir/IR/UseDefLists.h", 105 "include/mlir/IR/Value.h", 106 "include/mlir/IR/Visitors.h", 107 ], 108 copts = ["-std=c++14"], 109 includes = ["include"], 110 deps = [ 111 ":Support", 112 "@llvm//:support", 113 ], 114 ) 115 116 cc_library( 117 name = "Pass", 118 srcs = [ 119 "lib/Pass/IRPrinting.cpp", 120 "lib/Pass/Pass.cpp", 121 "lib/Pass/PassDetail.h", 122 "lib/Pass/PassManagerOptions.cpp", 123 "lib/Pass/PassRegistry.cpp", 124 "lib/Pass/PassTiming.cpp", 125 ], 126 hdrs = [ 127 "include/mlir/Analysis/Verifier.h", 128 "include/mlir/Pass/AnalysisManager.h", 129 "include/mlir/Pass/Pass.h", 130 "include/mlir/Pass/PassInstrumentation.h", 131 "include/mlir/Pass/PassManager.h", 132 "include/mlir/Pass/PassRegistry.h", 133 ], 134 copts = ["-std=c++14"], 135 includes = ["include"], 136 linkopts = [ 137 "-lm", 138 "-lpthread", 139 ], 140 deps = [ 141 ":IR", 142 ":Support", 143 "@llvm//:support", 144 ], 145 ) 146 147 cc_library( 148 name = "EDSC", 149 srcs = [ 150 "lib/EDSC/Builders.cpp", 151 "lib/EDSC/CoreAPIs.cpp", 152 "lib/EDSC/Helpers.cpp", 153 "lib/EDSC/Intrinsics.cpp", 154 ], 155 hdrs = [ 156 "include/mlir-c/Core.h", 157 "include/mlir/EDSC/Builders.h", 158 "include/mlir/EDSC/Helpers.h", 159 "include/mlir/EDSC/Intrinsics.h", 160 ], 161 copts = ["-std=c++14"], 162 includes = ["include"], 163 deps = [ 164 ":AffineOps", 165 ":Analysis", 166 ":IR", 167 ":StandardOps", 168 ":Support", 169 ":TransformUtils", 170 ":VectorOps", 171 "@llvm//:support", 172 ], 173 ) 174 175 filegroup( 176 name = "OpBaseTdFiles", 177 srcs = [ 178 "include/mlir/IR/OpBase.td", 179 ], 180 ) 181 182 filegroup( 183 name = "AffineOpsTdFiles", 184 srcs = [ 185 "include/mlir/Dialect/AffineOps/AffineOps.td", 186 "include/mlir/Dialect/AffineOps/AffineOpsBase.td", 187 ":OpBaseTdFiles", 188 ], 189 ) 190 191 gentbl( 192 name = "AffineOpsIncGen", 193 tbl_outs = [ 194 ( 195 "-gen-op-decls", 196 "include/mlir/Dialect/AffineOps/AffineOps.h.inc", 197 ), 198 ( 199 "-gen-op-defs", 200 "include/mlir/Dialect/AffineOps/AffineOps.cpp.inc", 201 ), 202 ], 203 tblgen = ":mlir-tblgen", 204 td_file = "include/mlir/Dialect/AffineOps/AffineOps.td", 205 td_srcs = [ 206 ":AffineOpsTdFiles", 207 ], 208 ) 209 210 filegroup( 211 name = "LoopOpsTdFiles", 212 srcs = [ 213 "include/mlir/Dialect/LoopOps/LoopOps.td", 214 ":OpBaseTdFiles", 215 ], 216 ) 217 218 gentbl( 219 name = "LoopOpsIncGen", 220 tbl_outs = [ 221 ( 222 "-gen-op-decls", 223 "include/mlir/Dialect/LoopOps/LoopOps.h.inc", 224 ), 225 ( 226 "-gen-op-defs", 227 "include/mlir/Dialect/LoopOps/LoopOps.cpp.inc", 228 ), 229 ], 230 tblgen = ":mlir-tblgen", 231 td_file = "include/mlir/Dialect/LoopOps/LoopOps.td", 232 td_srcs = [ 233 ":LoopOpsTdFiles", 234 ], 235 ) 236 237 filegroup( 238 name = "StdOpsTdFiles", 239 srcs = [ 240 "include/mlir/Dialect/StandardOps/Ops.td", 241 ":OpBaseTdFiles", 242 ], 243 ) 244 245 gentbl( 246 name = "StandardOpsIncGen", 247 tbl_outs = [ 248 ( 249 "-gen-op-decls", 250 "include/mlir/Dialect/StandardOps/Ops.h.inc", 251 ), 252 ( 253 "-gen-op-defs", 254 "include/mlir/Dialect/StandardOps/Ops.cpp.inc", 255 ), 256 ], 257 tblgen = ":mlir-tblgen", 258 td_file = "include/mlir/Dialect/StandardOps/Ops.td", 259 td_srcs = [ 260 ":StdOpsTdFiles", 261 ], 262 ) 263 264 cc_library( 265 name = "Dialect", 266 srcs = [ 267 "lib/Dialect/Traits.cpp", 268 ], 269 hdrs = [ 270 "include/mlir/Dialect/Traits.h", 271 ], 272 copts = ["-std=c++14"], 273 deps = [ 274 ":IR", 275 "@llvm//:support", 276 ], 277 ) 278 279 cc_library( 280 name = "AffineOps", 281 srcs = [ 282 "lib/Dialect/AffineOps/AffineOps.cpp", 283 ], 284 hdrs = [ 285 "include/mlir/Dialect/AffineOps/AffineOps.h", 286 ], 287 copts = ["-std=c++14"], 288 deps = [ 289 ":AffineOpsIncGen", 290 ":IR", 291 ":StandardOps", 292 ":Support", 293 "@llvm//:support", 294 ], 295 ) 296 297 # Library with affine dialect static initialization. 298 cc_library( 299 name = "AffineDialectRegistration", 300 srcs = ["lib/Dialect/AffineOps/DialectRegistration.cpp"], 301 copts = ["-std=c++14"], 302 deps = [ 303 ":AffineOps", 304 ":IR", 305 ], 306 alwayslink = 1, 307 ) 308 309 # SDBM dialect only contains attribute components that can be constructed given 310 # a dialect object, so whenever it is used it must also be registered. Therefore 311 # we don't split out the registration library for it. 312 cc_library( 313 name = "SDBM", 314 srcs = [ 315 "lib/Dialect/SDBM/SDBM.cpp", 316 "lib/Dialect/SDBM/SDBMDialect.cpp", 317 "lib/Dialect/SDBM/SDBMExpr.cpp", 318 "lib/Dialect/SDBM/SDBMExprDetail.h", 319 ], 320 hdrs = [ 321 "include/mlir/Dialect/SDBM/SDBM.h", 322 "include/mlir/Dialect/SDBM/SDBMDialect.h", 323 "include/mlir/Dialect/SDBM/SDBMExpr.h", 324 ], 325 copts = ["-std=c++14"], 326 deps = [ 327 ":IR", 328 ":Support", 329 "@llvm//:support", 330 ], 331 alwayslink = 1, 332 ) 333 334 cc_library( 335 name = "LoopOps", 336 srcs = [ 337 "lib/Dialect/LoopOps/LoopOps.cpp", 338 ], 339 hdrs = [ 340 "include/mlir/Dialect/LoopOps/LoopOps.h", 341 ], 342 copts = ["-std=c++14"], 343 deps = [ 344 ":IR", 345 ":LoopOpsIncGen", 346 ":StandardOps", 347 ":Support", 348 "@llvm//:support", 349 ], 350 ) 351 352 cc_library( 353 name = "LoopDialectRegistration", 354 srcs = ["lib/Dialect/LoopOps/DialectRegistration.cpp"], 355 copts = ["-std=c++14"], 356 deps = [ 357 ":IR", 358 ":LoopOps", 359 ], 360 alwayslink = 1, 361 ) 362 363 cc_library( 364 name = "StandardOps", 365 srcs = [ 366 "lib/Dialect/StandardOps/Ops.cpp", 367 ], 368 hdrs = [ 369 "include/mlir/Dialect/StandardOps/Ops.h", 370 ], 371 copts = ["-std=c++14"], 372 deps = [ 373 ":IR", 374 ":StandardOpsIncGen", 375 ":Support", 376 "@llvm//:support", 377 ], 378 ) 379 380 # Library with standard dialect static initialization. 381 cc_library( 382 name = "StandardDialectRegistration", 383 srcs = ["lib/Dialect/StandardOps/DialectRegistration.cpp"], 384 copts = ["-std=c++14"], 385 deps = [ 386 ":IR", 387 ":StandardOps", 388 ], 389 alwayslink = 1, 390 ) 391 392 cc_library( 393 name = "VectorOps", 394 srcs = [ 395 "lib/Dialect/VectorOps/VectorOps.cpp", 396 ], 397 hdrs = [ 398 "include/mlir/Dialect/VectorOps/VectorOps.h", 399 ], 400 copts = ["-std=c++14"], 401 deps = [ 402 ":IR", 403 ":Support", 404 ":VectorOpsIncGen", 405 "@llvm//:support", 406 ], 407 ) 408 409 cc_library( 410 name = "VectorDialectRegistration", 411 srcs = ["lib/Dialect/VectorOps/DialectRegistration.cpp"], 412 copts = ["-std=c++14"], 413 deps = [ 414 ":IR", 415 ":VectorOps", 416 ], 417 alwayslink = 1, 418 ) 419 420 cc_library( 421 name = "Support", 422 srcs = [ 423 "lib/Support/FileUtilities.cpp", 424 "lib/Support/StorageUniquer.cpp", 425 ], 426 hdrs = [ 427 "include/mlir/Support/DebugStringHelper.h", 428 "include/mlir/Support/FileUtilities.h", 429 "include/mlir/Support/Functional.h", 430 "include/mlir/Support/LLVM.h", 431 "include/mlir/Support/LogicalResult.h", 432 "include/mlir/Support/MathExtras.h", 433 "include/mlir/Support/STLExtras.h", 434 "include/mlir/Support/StorageUniquer.h", 435 "include/mlir/Support/StringExtras.h", 436 ], 437 copts = ["-std=c++14"], 438 includes = ["include"], 439 deps = [ 440 "@llvm//:support", 441 ], 442 ) 443 444 cc_library( 445 name = "Parser", 446 srcs = [ 447 "lib/Parser/Lexer.cpp", 448 "lib/Parser/Lexer.h", 449 "lib/Parser/Parser.cpp", 450 "lib/Parser/Token.cpp", 451 "lib/Parser/Token.h", 452 ], 453 hdrs = [ 454 "include/mlir/Parser.h", 455 "lib/Parser/TokenKinds.def", 456 ], 457 copts = ["-std=c++14"], 458 includes = ["include"], 459 deps = [ 460 ":Analysis", 461 ":IR", 462 ":Support", 463 "@llvm//:support", 464 ], 465 ) 466 467 cc_library( 468 name = "LLVMDialect", 469 srcs = [ 470 "include/mlir/Dialect/LLVMIR/LLVMOps.cpp.inc", 471 "include/mlir/Dialect/LLVMIR/LLVMOps.h.inc", 472 "lib/Dialect/LLVMIR/IR/LLVMDialect.cpp", 473 ], 474 hdrs = [ 475 "include/mlir/Dialect/LLVMIR/LLVMDialect.h", 476 ], 477 copts = ["-std=c++14"], 478 includes = ["include"], 479 deps = [ 480 ":IR", 481 ":LLVMOpsIncGen", 482 ":Support", 483 "@llvm//:asm_parser", 484 "@llvm//:core", 485 "@llvm//:support", 486 ], 487 alwayslink = 1, 488 ) 489 490 filegroup( 491 name = "GPUOpsTdFiles", 492 srcs = [ 493 "include/mlir/Dialect/GPU/GPUOps.td", 494 ":OpBaseTdFiles", 495 ], 496 ) 497 498 gentbl( 499 name = "GPUOpsIncGen", 500 tbl_outs = [ 501 ( 502 "-gen-op-decls", 503 "include/mlir/Dialect/GPU/GPUOps.h.inc", 504 ), 505 ( 506 "-gen-op-defs", 507 "include/mlir/Dialect/GPU/GPUOps.cpp.inc", 508 ), 509 ], 510 tblgen = ":mlir-tblgen", 511 td_file = "include/mlir/Dialect/GPU/GPUOps.td", 512 td_srcs = [ 513 ":GPUOpsTdFiles", 514 ], 515 ) 516 517 cc_library( 518 name = "GPUDialect", 519 srcs = ["lib/Dialect/GPU/IR/GPUDialect.cpp"], 520 hdrs = ["include/mlir/Dialect/GPU/GPUDialect.h"], 521 copts = ["-std=c++14"], 522 includes = ["include"], 523 deps = [ 524 ":GPUOpsIncGen", 525 ":IR", 526 ":StandardOps", 527 ":Support", 528 ], 529 ) 530 531 cc_library( 532 name = "GPUDialectRegistration", 533 srcs = ["lib/Dialect/GPU/IR/DialectRegistration.cpp"], 534 copts = ["-std=c++14"], 535 includes = ["include"], 536 deps = [ 537 ":GPUDialect", 538 ], 539 alwayslink = 1, 540 ) 541 542 cc_library( 543 name = "GPUTransforms", 544 srcs = ["lib/Dialect/GPU/Transforms/KernelOutlining.cpp"], 545 hdrs = ["include/mlir/Dialect/GPU/Passes.h"], 546 copts = ["-std=c++14"], 547 includes = ["include"], 548 deps = [ 549 ":GPUDialect", 550 ":IR", 551 ":LoopOps", 552 ":Pass", 553 ":StandardOps", 554 ":Transforms", 555 ], 556 alwayslink = 1, 557 ) 558 559 filegroup( 560 name = "LLVMOpsTdFiles", 561 srcs = [ 562 "include/mlir/Dialect/LLVMIR/LLVMOpBase.td", 563 "include/mlir/Dialect/LLVMIR/LLVMOps.td", 564 ":OpBaseTdFiles", 565 ], 566 ) 567 568 cc_library( 569 name = "GPUToNVVMTransforms", 570 srcs = ["lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp"], 571 hdrs = [ 572 "include/mlir/Conversion/GPUToNVVM/GPUToNVVMPass.h", 573 ], 574 copts = ["-std=c++14"], 575 includes = ["include"], 576 deps = [ 577 ":GPUDialect", 578 ":IR", 579 ":LLVMDialect", 580 ":LLVMTransforms", 581 ":NVVMDialect", 582 ":Pass", 583 ":Transforms", 584 "@llvm//:support", 585 ], 586 alwayslink = 1, 587 ) 588 589 cc_library( 590 name = "GPUToCUDATransforms", 591 srcs = [ 592 "lib/Conversion/GPUToCUDA/ConvertKernelFuncToCubin.cpp", 593 "lib/Conversion/GPUToCUDA/ConvertLaunchFuncToCudaCalls.cpp", 594 "lib/Conversion/GPUToCUDA/GenerateCubinAccessors.cpp", 595 ], 596 hdrs = ["include/mlir/Conversion/GPUToCUDA/GPUToCUDAPass.h"], 597 copts = ["-std=c++14"], 598 includes = ["include"], 599 deps = [ 600 ":GPUDialect", 601 ":IR", 602 ":LLVMDialect", 603 ":Pass", 604 ":Support", 605 ":TargetNVVMIR", 606 "@llvm//:core", 607 "@llvm//:nvptx_target", # buildcleaner: keep 608 "@llvm//:support", 609 "@llvm//:target", 610 ], 611 alwayslink = 1, 612 ) 613 614 cc_library( 615 name = "GPUToSPIRVTransforms", 616 srcs = [ 617 "lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp", 618 ], 619 copts = ["-std=c++14"], 620 includes = ["include"], 621 deps = [ 622 ":GPUDialect", 623 ":IR", 624 ":Pass", 625 ":SPIRVConversions", 626 ":SPIRVDialect", 627 ":StandardOps", 628 ], 629 alwayslink = 1, 630 ) 631 632 gentbl( 633 name = "LLVMOpsIncGen", 634 tbl_outs = [ 635 ( 636 "-gen-op-decls", 637 "include/mlir/Dialect/LLVMIR/LLVMOps.h.inc", 638 ), 639 ( 640 "-gen-op-defs", 641 "include/mlir/Dialect/LLVMIR/LLVMOps.cpp.inc", 642 ), 643 ( 644 "-gen-enum-decls", 645 "include/mlir/Dialect/LLVMIR/LLVMOpsEnums.h.inc", 646 ), 647 ( 648 "-gen-enum-defs", 649 "include/mlir/Dialect/LLVMIR/LLVMOpsEnums.cpp.inc", 650 ), 651 ], 652 tblgen = ":mlir-tblgen", 653 td_file = "include/mlir/Dialect/LLVMIR/LLVMOps.td", 654 td_srcs = [ 655 ":LLVMOpsTdFiles", 656 ], 657 ) 658 659 gentbl( 660 name = "LLVMConversionIncGen", 661 tbl_outs = [ 662 ( 663 "-gen-llvmir-conversions", 664 "include/mlir/Dialect/LLVMIR/LLVMConversions.inc", 665 ), 666 ], 667 tblgen = ":mlir-tblgen", 668 td_file = "include/mlir/Dialect/LLVMIR/LLVMOps.td", 669 td_srcs = [ 670 ":LLVMOpsTdFiles", 671 ], 672 ) 673 674 cc_library( 675 name = "NVVMDialect", 676 srcs = [ 677 "include/mlir/Dialect/LLVMIR/NVVMOps.cpp.inc", 678 "include/mlir/Dialect/LLVMIR/NVVMOps.h.inc", 679 "lib/Dialect/LLVMIR/IR/NVVMDialect.cpp", 680 ], 681 hdrs = [ 682 "include/mlir/Dialect/LLVMIR/NVVMDialect.h", 683 ], 684 copts = ["-std=c++14"], 685 includes = ["include"], 686 deps = [ 687 ":IR", 688 ":LLVMDialect", 689 ":NVVMOpsIncGen", 690 ":StandardOps", 691 ":Support", 692 "@llvm//:asm_parser", 693 "@llvm//:core", 694 "@llvm//:support", 695 ], 696 alwayslink = 1, 697 ) 698 699 filegroup( 700 name = "NVVMOpsTdFiles", 701 srcs = [ 702 "include/mlir/Dialect/LLVMIR/LLVMOpBase.td", 703 "include/mlir/Dialect/LLVMIR/NVVMOps.td", 704 ":OpBaseTdFiles", 705 ], 706 ) 707 708 gentbl( 709 name = "NVVMOpsIncGen", 710 tbl_outs = [ 711 ( 712 "-gen-op-decls", 713 "include/mlir/Dialect/LLVMIR/NVVMOps.h.inc", 714 ), 715 ( 716 "-gen-op-defs", 717 "include/mlir/Dialect/LLVMIR/NVVMOps.cpp.inc", 718 ), 719 ], 720 tblgen = ":mlir-tblgen", 721 td_file = "include/mlir/Dialect/LLVMIR/NVVMOps.td", 722 td_srcs = [ 723 ":NVVMOpsTdFiles", 724 ], 725 ) 726 727 gentbl( 728 name = "NVVMConversionIncGen", 729 tbl_outs = [ 730 ( 731 "-gen-llvmir-conversions", 732 "include/mlir/Dialect/LLVMIR/NVVMConversions.inc", 733 ), 734 ], 735 tblgen = ":mlir-tblgen", 736 td_file = "include/mlir/Dialect/LLVMIR/NVVMOps.td", 737 td_srcs = [ 738 ":NVVMOpsTdFiles", 739 ], 740 ) 741 742 filegroup( 743 name = "SPIRVOpsTdFiles", 744 srcs = [ 745 "include/mlir/Dialect/SPIRV/SPIRVArithmeticOps.td", 746 "include/mlir/Dialect/SPIRV/SPIRVBase.td", 747 "include/mlir/Dialect/SPIRV/SPIRVControlFlowOps.td", 748 "include/mlir/Dialect/SPIRV/SPIRVLogicalOps.td", 749 "include/mlir/Dialect/SPIRV/SPIRVOps.td", 750 "include/mlir/Dialect/SPIRV/SPIRVStructureOps.td", 751 ":OpBaseTdFiles", 752 ], 753 ) 754 755 gentbl( 756 name = "SPIRVOpsIncGen", 757 tbl_outs = [ 758 ( 759 "-gen-op-decls", 760 "include/mlir/Dialect/SPIRV/SPIRVOps.h.inc", 761 ), 762 ( 763 "-gen-op-defs", 764 "include/mlir/Dialect/SPIRV/SPIRVOps.cpp.inc", 765 ), 766 ( 767 "-gen-op-doc", 768 "g3doc/Dialects/SPIRV/SPIRVOps.md", 769 ), 770 ( 771 "-gen-enum-decls", 772 "include/mlir/Dialect/SPIRV/SPIRVEnums.h.inc", 773 ), 774 ( 775 "-gen-enum-defs", 776 "include/mlir/Dialect/SPIRV/SPIRVEnums.cpp.inc", 777 ), 778 ], 779 tblgen = ":mlir-tblgen", 780 td_file = "include/mlir/Dialect/SPIRV/SPIRVOps.td", 781 td_srcs = [ 782 ":SPIRVOpsTdFiles", 783 ], 784 ) 785 786 gentbl( 787 name = "StandardToSPIRVGen", 788 tbl_outs = [ 789 ( 790 "-gen-rewriters", 791 "lib/Conversion/StandardToSPIRV/StandardToSPIRV.cpp.inc", 792 ), 793 ], 794 tblgen = ":mlir-tblgen", 795 td_file = "lib/Conversion/StandardToSPIRV/StandardToSPIRV.td", 796 td_srcs = [ 797 ":SPIRVOpsTdFiles", 798 ":StdOpsTdFiles", 799 ], 800 ) 801 802 gentbl( 803 name = "SPIRVOpUtilsIncGen", 804 tbl_outs = [ 805 ( 806 "-gen-spirv-op-utils", 807 "include/mlir/Dialect/SPIRV/SPIRVOpUtils.inc", 808 ), 809 ], 810 tblgen = ":mlir-tblgen", 811 td_file = "include/mlir/Dialect/SPIRV/SPIRVBase.td", 812 td_srcs = [ 813 ":SPIRVOpsTdFiles", 814 ], 815 ) 816 817 gentbl( 818 name = "SPIRVSerializationGen", 819 tbl_outs = [ 820 ( 821 "-gen-spirv-serialization", 822 "include/mlir/Dialect/SPIRV/SPIRVSerialization.inc", 823 ), 824 ], 825 tblgen = ":mlir-tblgen", 826 td_file = "include/mlir/Dialect/SPIRV/SPIRVOps.td", 827 td_srcs = [ 828 ":SPIRVOpsTdFiles", 829 ], 830 ) 831 832 cc_library( 833 name = "SPIRVDialect", 834 srcs = [ 835 "include/mlir/Dialect/SPIRV/SPIRVEnums.cpp.inc", 836 "include/mlir/Dialect/SPIRV/SPIRVEnums.h.inc", 837 "include/mlir/Dialect/SPIRV/SPIRVOpUtils.inc", 838 "include/mlir/Dialect/SPIRV/SPIRVOps.cpp.inc", 839 "include/mlir/Dialect/SPIRV/SPIRVOps.h.inc", 840 "lib/Dialect/SPIRV/SPIRVDialect.cpp", 841 "lib/Dialect/SPIRV/SPIRVOps.cpp", 842 "lib/Dialect/SPIRV/SPIRVTypes.cpp", 843 ], 844 hdrs = [ 845 "include/mlir/Dialect/SPIRV/SPIRVDialect.h", 846 "include/mlir/Dialect/SPIRV/SPIRVOps.h", 847 "include/mlir/Dialect/SPIRV/SPIRVTypes.h", 848 ], 849 copts = ["-std=c++14"], 850 includes = ["include"], 851 deps = [ 852 ":IR", 853 ":Parser", 854 ":SPIRVOpUtilsIncGen", 855 ":SPIRVOpsIncGen", 856 ":Support", 857 "@llvm//:support", 858 ], 859 alwayslink = 1, 860 ) 861 862 cc_library( 863 name = "SPIRVConversions", 864 srcs = [ 865 "lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp", 866 "lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRVPass.cpp", 867 "lib/Conversion/StandardToSPIRV/StandardToSPIRV.cpp.inc", 868 ], 869 hdrs = [ 870 "include/mlir/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.h", 871 "include/mlir/Dialect/SPIRV/Passes.h", 872 ], 873 copts = ["-std=c++14"], 874 includes = [ 875 "include", 876 "lib/Conversion/StandardToSPIRV", 877 ], 878 deps = [ 879 ":IR", 880 ":Pass", 881 ":SPIRVDialect", 882 ":StandardOps", 883 ":StandardToSPIRVGen", 884 ":Support", 885 ":Transforms", 886 "@llvm//:support", 887 ], 888 alwayslink = 1, 889 ) 890 891 cc_library( 892 name = "SPIRVSerialization", 893 srcs = [ 894 "include/mlir/Dialect/SPIRV/SPIRVSerialization.inc", 895 "lib/Dialect/SPIRV/Serialization/Deserializer.cpp", 896 "lib/Dialect/SPIRV/Serialization/SPIRVBinaryUtils.cpp", 897 "lib/Dialect/SPIRV/Serialization/Serializer.cpp", 898 ], 899 hdrs = [ 900 "include/mlir/Dialect/SPIRV/SPIRVBinaryUtils.h", 901 "include/mlir/Dialect/SPIRV/Serialization.h", 902 ], 903 copts = ["-std=c++14"], 904 includes = ["include"], 905 deps = [ 906 ":IR", 907 ":SPIRVDialect", 908 ":SPIRVSerializationGen", 909 ":Support", 910 "@llvm//:support", 911 ], 912 ) 913 914 cc_library( 915 name = "SerializeSPIRV", 916 srcs = [ 917 "lib/Dialect/SPIRV/Serialization/ConvertToBinary.cpp", 918 ], 919 copts = ["-std=c++14"], 920 includes = ["include"], 921 deps = [ 922 ":IR", 923 ":SPIRVDialect", 924 ":SPIRVSerialization", 925 ":Support", 926 ":Translation", 927 "@llvm//:support", 928 ], 929 alwayslink = 1, 930 ) 931 932 cc_library( 933 name = "DeserializeSPIRV", 934 srcs = [ 935 "lib/Dialect/SPIRV/Serialization/ConvertFromBinary.cpp", 936 ], 937 copts = ["-std=c++14"], 938 includes = ["include"], 939 deps = [ 940 ":IR", 941 ":SPIRVDialect", 942 ":SPIRVSerialization", 943 ":StandardOps", 944 ":Support", 945 ":Translation", 946 "@llvm//:support", 947 ], 948 alwayslink = 1, 949 ) 950 951 cc_library( 952 name = "SPIRVDialectRegistration", 953 srcs = ["lib/Dialect/SPIRV/DialectRegistration.cpp"], 954 copts = ["-std=c++14"], 955 deps = [ 956 ":SPIRVDialect", 957 ], 958 alwayslink = 1, 959 ) 960 961 cc_library( 962 name = "TransformUtils", 963 srcs = [ 964 "lib/Transforms/Utils/FoldUtils.cpp", 965 "lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp", 966 "lib/Transforms/Utils/LoopFusionUtils.cpp", 967 "lib/Transforms/Utils/LoopUtils.cpp", 968 "lib/Transforms/Utils/RegionUtils.cpp", 969 "lib/Transforms/Utils/Utils.cpp", 970 ], 971 hdrs = [ 972 "include/mlir/Transforms/FoldUtils.h", 973 "include/mlir/Transforms/LoopFusionUtils.h", 974 "include/mlir/Transforms/LoopUtils.h", 975 "include/mlir/Transforms/RegionUtils.h", 976 "include/mlir/Transforms/Utils.h", 977 ], 978 copts = ["-std=c++14"], 979 includes = ["include"], 980 deps = [ 981 ":AffineOps", 982 ":Analysis", 983 ":IR", 984 ":LoopDialectRegistration", 985 ":LoopOps", 986 ":StandardDialectRegistration", 987 ":StandardOps", 988 ":Support", 989 "@llvm//:support", 990 ], 991 ) 992 993 cc_library( 994 name = "Transforms", 995 srcs = [ 996 "lib/Transforms/AffineDataCopyGeneration.cpp", 997 "lib/Transforms/CSE.cpp", 998 "lib/Transforms/Canonicalizer.cpp", 999 "lib/Transforms/DialectConversion.cpp", 1000 "lib/Transforms/LoopCoalescing.cpp", 1001 "lib/Transforms/LoopFusion.cpp", 1002 "lib/Transforms/LoopInvariantCodeMotion.cpp", 1003 "lib/Transforms/LoopTiling.cpp", 1004 "lib/Transforms/LoopUnroll.cpp", 1005 "lib/Transforms/LoopUnrollAndJam.cpp", 1006 "lib/Transforms/LowerAffine.cpp", 1007 "lib/Transforms/LowerVectorTransfers.cpp", 1008 "lib/Transforms/MaterializeVectors.cpp", 1009 "lib/Transforms/MemRefDataFlowOpt.cpp", 1010 "lib/Transforms/PipelineDataTransfer.cpp", 1011 "lib/Transforms/SimplifyAffineStructures.cpp", 1012 "lib/Transforms/StripDebugInfo.cpp", 1013 "lib/Transforms/Vectorize.cpp", 1014 ], 1015 hdrs = [ 1016 "include/mlir/Transforms/DialectConversion.h", 1017 "include/mlir/Transforms/LowerAffine.h", 1018 "include/mlir/Transforms/Passes.h", 1019 ], 1020 copts = ["-std=c++14"], 1021 includes = ["include"], 1022 deps = [ 1023 ":AffineOps", 1024 ":Analysis", 1025 ":EDSC", 1026 ":IR", 1027 ":LoopOps", 1028 ":Pass", 1029 ":StandardOps", 1030 ":Support", 1031 ":TransformUtils", 1032 ":VectorOps", 1033 "@llvm//:support", 1034 ], 1035 alwayslink = 1, 1036 ) 1037 1038 cc_library( 1039 name = "LoopsToGPU", 1040 srcs = [ 1041 "lib/Conversion/LoopsToGPU/LoopsToGPU.cpp", 1042 ], 1043 hdrs = [ 1044 "include/mlir/Conversion/LoopsToGPU/LoopsToGPU.h", 1045 ], 1046 copts = ["-std=c++14"], 1047 includes = ["include"], 1048 deps = [ 1049 ":AffineOps", 1050 ":GPUDialect", 1051 ":IR", 1052 ":Linalg", 1053 ":LoopOps", 1054 ":StandardOps", 1055 ":Support", 1056 ":TransformUtils", 1057 ":Transforms", 1058 "@llvm//:support", 1059 ], 1060 ) 1061 1062 cc_library( 1063 name = "LoopsToGPUPass", 1064 srcs = [ 1065 "lib/Conversion/LoopsToGPU/LoopsToGPUPass.cpp", 1066 ], 1067 hdrs = [ 1068 "include/mlir/Conversion/LoopsToGPU/LoopsToGPUPass.h", 1069 ], 1070 copts = ["-std=c++14"], 1071 includes = ["include"], 1072 deps = [ 1073 ":AffineOps", 1074 ":LoopOps", 1075 ":LoopsToGPU", 1076 ":Pass", 1077 "@llvm//:support", 1078 ], 1079 alwayslink = 1, 1080 ) 1081 1082 cc_library( 1083 name = "CFGTransforms", 1084 srcs = [ 1085 "lib/Conversion/ControlFlowToCFG/ConvertControlFlowToCFG.cpp", 1086 ], 1087 hdrs = [ 1088 "include/mlir/Conversion/ControlFlowToCFG/ConvertControlFlowToCFG.h", 1089 ], 1090 copts = ["-std=c++14"], 1091 includes = ["include"], 1092 deps = [ 1093 ":IR", 1094 ":LLVMDialect", 1095 ":LoopOps", 1096 ":Pass", 1097 ":StandardOps", 1098 ":Support", 1099 ":TransformUtils", 1100 ":Transforms", 1101 "@llvm//:core", 1102 "@llvm//:support", 1103 ], 1104 alwayslink = 1, 1105 ) 1106 1107 cc_library( 1108 name = "LLVMTransforms", 1109 srcs = [ 1110 "lib/Conversion/StandardToLLVM/ConvertStandardToLLVM.cpp", 1111 ], 1112 hdrs = [ 1113 "include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h", 1114 "include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVMPass.h", 1115 ], 1116 copts = ["-std=c++14"], 1117 includes = ["include"], 1118 deps = [ 1119 ":CFGTransforms", 1120 ":IR", 1121 ":LLVMDialect", 1122 ":Pass", 1123 ":StandardOps", 1124 ":Support", 1125 ":TransformUtils", 1126 ":Transforms", 1127 "@llvm//:core", 1128 "@llvm//:support", 1129 ], 1130 alwayslink = 1, 1131 ) 1132 1133 cc_library( 1134 name = "Analysis", 1135 srcs = [ 1136 "lib/Analysis/AffineAnalysis.cpp", 1137 "lib/Analysis/AffineStructures.cpp", 1138 "lib/Analysis/Dominance.cpp", 1139 "lib/Analysis/LoopAnalysis.cpp", 1140 "lib/Analysis/MemRefBoundCheck.cpp", 1141 "lib/Analysis/NestedMatcher.cpp", 1142 "lib/Analysis/OpStats.cpp", 1143 "lib/Analysis/SliceAnalysis.cpp", 1144 "lib/Analysis/TestMemRefDependenceCheck.cpp", 1145 "lib/Analysis/TestParallelismDetection.cpp", 1146 "lib/Analysis/Utils.cpp", 1147 "lib/Analysis/VectorAnalysis.cpp", 1148 "lib/Analysis/Verifier.cpp", 1149 ], 1150 hdrs = [ 1151 "include/mlir/Analysis/AffineAnalysis.h", 1152 "include/mlir/Analysis/AffineStructures.h", 1153 "include/mlir/Analysis/Dominance.h", 1154 "include/mlir/Analysis/LoopAnalysis.h", 1155 "include/mlir/Analysis/NestedMatcher.h", 1156 "include/mlir/Analysis/Passes.h", 1157 "include/mlir/Analysis/SliceAnalysis.h", 1158 "include/mlir/Analysis/Utils.h", 1159 "include/mlir/Analysis/VectorAnalysis.h", 1160 "include/mlir/Analysis/Verifier.h", 1161 ], 1162 copts = ["-std=c++14"], 1163 includes = ["include"], 1164 deps = [ 1165 ":AffineOps", 1166 ":IR", 1167 ":LoopOps", 1168 ":Pass", 1169 ":StandardOps", 1170 ":Support", 1171 ":VectorOps", 1172 "@llvm//:support", 1173 ], 1174 alwayslink = 1, 1175 ) 1176 1177 cc_library( 1178 name = "Translation", 1179 srcs = ["lib/Translation/Translation.cpp"], 1180 hdrs = ["include/mlir/Translation.h"], 1181 copts = ["-std=c++14"], 1182 deps = [ 1183 ":IR", 1184 ":Parser", 1185 ":StandardOps", 1186 ":Support", 1187 "@llvm//:support", 1188 ], 1189 ) 1190 1191 cc_library( 1192 name = "LLVMIRModuleTranslation", 1193 srcs = [ 1194 "lib/Target/LLVMIR/ModuleTranslation.cpp", 1195 ], 1196 hdrs = [ 1197 "include/mlir/Target/LLVMIR/ModuleTranslation.h", 1198 ], 1199 copts = ["-std=c++14"], 1200 deps = [ 1201 ":IR", 1202 ":LLVMConversionIncGen", 1203 ":LLVMDialect", 1204 ":Support", 1205 "@llvm//:core", 1206 "@llvm//:support", 1207 "@llvm//:transform_utils", 1208 ], 1209 ) 1210 1211 cc_library( 1212 name = "TargetLLVMIR", 1213 srcs = [ 1214 "lib/Target/LLVMIR/ConvertToLLVMIR.cpp", 1215 ], 1216 hdrs = [ 1217 "include/mlir/Target/LLVMIR.h", 1218 ], 1219 copts = ["-std=c++14"], 1220 includes = ["include"], 1221 deps = [ 1222 ":LLVMIRModuleTranslation", 1223 ":Support", 1224 ":Translation", 1225 "@llvm//:core", 1226 "@llvm//:support", 1227 ], 1228 alwayslink = 1, 1229 ) 1230 1231 cc_library( 1232 name = "TargetNVVMIR", 1233 srcs = [ 1234 "lib/Target/LLVMIR/ConvertToNVVMIR.cpp", 1235 ], 1236 hdrs = [ 1237 "include/mlir/Target/NVVMIR.h", 1238 ], 1239 copts = ["-std=c++14"], 1240 includes = ["include"], 1241 deps = [ 1242 ":GPUDialect", 1243 ":IR", 1244 ":LLVMIRModuleTranslation", 1245 ":NVVMConversionIncGen", 1246 ":NVVMDialect", 1247 ":Support", 1248 ":Translation", 1249 "@llvm//:core", 1250 "@llvm//:support", 1251 ], 1252 alwayslink = 1, 1253 ) 1254 1255 cc_library( 1256 name = "ExecutionEngine", 1257 srcs = [ 1258 "lib/ExecutionEngine/ExecutionEngine.cpp", 1259 "lib/ExecutionEngine/MemRefUtils.cpp", 1260 ], 1261 hdrs = [ 1262 "include/mlir/ExecutionEngine/ExecutionEngine.h", 1263 "include/mlir/ExecutionEngine/MemRefUtils.h", 1264 ], 1265 copts = ["-std=c++14"], 1266 includes = ["include"], 1267 deps = [ 1268 ":IR", 1269 ":LLVMDialect", 1270 ":Support", 1271 ":TargetLLVMIR", 1272 ":Translation", 1273 "//third_party/llvm/llvm:bit_reader", 1274 "//third_party/llvm/llvm:bit_writer", 1275 "@llvm//:core", 1276 "@llvm//:execution_engine", 1277 "@llvm//:mc", 1278 "@llvm//:orc_jit", 1279 "@llvm//:support", 1280 "@llvm//:target", # fixdeps: keep 1281 "@llvm//:transform_utils", 1282 "@llvm//:x86_code_gen", # fixdeps: keep 1283 "@llvm//:x86_disassembler", # fixdeps: keep 1284 ], 1285 ) 1286 1287 cc_library( 1288 name = "ExecutionEngineUtils", 1289 srcs = [ 1290 "lib/ExecutionEngine/OptUtils.cpp", 1291 ], 1292 hdrs = [ 1293 "include/mlir/ExecutionEngine/OptUtils.h", 1294 ], 1295 copts = ["-std=c++14"], 1296 includes = ["include"], 1297 deps = [ 1298 "@llvm//:analysis", 1299 "@llvm//:core", 1300 "@llvm//:ipo", 1301 "@llvm//:support", 1302 "@llvm//:target", 1303 ], 1304 ) 1305 1306 cc_library( 1307 name = "MlirOptLib", 1308 srcs = [ 1309 "lib/Support/MlirOptMain.cpp", 1310 ], 1311 hdrs = [ 1312 "include/mlir/Support/MlirOptMain.h", 1313 ], 1314 copts = ["-std=c++14"], 1315 includes = ["include"], 1316 deps = [ 1317 ":Analysis", 1318 ":GPUToNVVMTransforms", 1319 ":GPUToSPIRVTransforms", 1320 ":GPUTransforms", 1321 ":IR", 1322 ":LLVMDialect", 1323 ":LLVMTransforms", 1324 ":NVVMDialect", 1325 ":Parser", 1326 ":Pass", 1327 ":QuantizerTransforms", 1328 ":SPIRVConversions", 1329 ":SPIRVDialectRegistration", 1330 ":Support", 1331 ":Transforms", 1332 ":VectorToLLVMTransforms", 1333 ":ViewRegionGraph", 1334 "@llvm//:support", 1335 ], 1336 ) 1337 1338 cc_library( 1339 name = "ViewRegionGraph", 1340 srcs = ["lib/Transforms/ViewRegionGraph.cpp"], 1341 hdrs = ["include/mlir/Transforms/ViewRegionGraph.h"], 1342 copts = ["-std=c++14"], 1343 includes = ["include"], 1344 deps = [ 1345 ":Analysis", 1346 ":IR", 1347 ":Pass", 1348 ":Support", 1349 "@llvm//:support", 1350 ], 1351 ) 1352 1353 cc_library( 1354 name = "TranslateClParser", 1355 srcs = ["lib/Support/TranslateClParser.cpp"], 1356 hdrs = ["include/mlir/Support/TranslateClParser.h"], 1357 copts = ["-std=c++14"], 1358 includes = ["include"], 1359 deps = [ 1360 ":Analysis", 1361 ":IR", 1362 ":Parser", 1363 ":Support", 1364 ":Translation", 1365 "@llvm//:support", 1366 ], 1367 ) 1368 1369 cc_binary( 1370 name = "mlir-translate", 1371 copts = ["-std=c++14"], 1372 deps = [ 1373 ":tools/mlir-translate/mlir-translate", 1374 ], 1375 ) 1376 1377 cc_library( 1378 name = "tools/mlir-translate/mlir-translate", 1379 srcs = ["tools/mlir-translate/mlir-translate.cpp"], 1380 copts = ["-std=c++14"], 1381 deps = [ 1382 ":DeserializeSPIRV", 1383 ":IR", 1384 ":LoopDialectRegistration", 1385 ":Parser", 1386 ":SPIRVDialectRegistration", 1387 ":SerializeSPIRV", 1388 ":StandardDialectRegistration", 1389 ":Support", 1390 ":TargetLLVMIR", 1391 ":TargetNVVMIR", 1392 ":TranslateClParser", 1393 ":Translation", 1394 ":VectorDialectRegistration", 1395 "@llvm//:support", 1396 ], 1397 ) 1398 1399 # TODO(jpienaar): This library should be removed. 1400 cc_library( 1401 name = "MlirOptMain", 1402 srcs = [ 1403 "tools/mlir-opt/mlir-opt.cpp", 1404 ], 1405 copts = ["-std=c++14"], 1406 deps = [ 1407 ":Analysis", 1408 ":MlirOptLib", 1409 ":Pass", 1410 ":Support", 1411 "@llvm//:support", 1412 ], 1413 ) 1414 1415 cc_binary( 1416 name = "mlir-opt", 1417 copts = ["-std=c++14"], 1418 deps = [ 1419 ":AffineDialectRegistration", 1420 ":Analysis", 1421 ":FxpMathOps", 1422 ":FxpMathOpsDialectRegistration", 1423 ":GPUDialectRegistration", 1424 ":IR", 1425 ":LinalgDialectRegistration", 1426 ":LoopDialectRegistration", 1427 ":LoopsToGPUPass", 1428 ":MlirOptLib", 1429 ":MlirOptMain", 1430 ":QuantOps", 1431 ":QuantOpsDialectRegistration", 1432 ":StandardDialectRegistration", 1433 ":Transforms", 1434 ":VectorDialectRegistration", 1435 "//test:TestDialect", 1436 "//test:TestTransforms", 1437 "@llvm//:support", 1438 ], 1439 ) 1440 1441 cc_library( 1442 name = "MlirJitRunner", 1443 srcs = ["lib/Support/JitRunner.cpp"], 1444 hdrs = ["include/mlir/Support/JitRunner.h"], 1445 copts = ["-std=c++14"], 1446 includes = ["include"], 1447 deps = [ 1448 ":ExecutionEngine", 1449 ":ExecutionEngineUtils", 1450 ":IR", 1451 ":LLVMDialect", 1452 ":LLVMTransforms", 1453 ":LoopDialectRegistration", 1454 ":Parser", 1455 ":Pass", 1456 ":StandardDialectRegistration", 1457 ":Support", 1458 ":Transforms", 1459 "@llvm//:core", 1460 "@llvm//:orc_jit", 1461 "@llvm//:support", 1462 ], 1463 alwayslink = 1, 1464 ) 1465 1466 cc_binary( 1467 name = "mlir-cpu-runner", 1468 srcs = ["tools/mlir-cpu-runner/mlir-cpu-runner.cpp"], 1469 copts = ["-std=c++14"], 1470 linkopts = ["-ldl"], 1471 deps = [ 1472 ":MlirJitRunner", 1473 "@llvm//:support", 1474 ], 1475 ) 1476 1477 cc_binary( 1478 name = "tools/libcuda-runtime-wrappers.so", 1479 srcs = ["tools/mlir-cuda-runner/cuda-runtime-wrappers.cpp"], 1480 copts = ["-std=c++14"], 1481 includes = ["include"], 1482 linkshared = True, 1483 deps = [ 1484 "//third_party/gpus/cuda:cuda_headers", 1485 "//third_party/gpus/cuda:cuda_runtime", 1486 "//third_party/gpus/cuda:libcuda", 1487 "@llvm//:support", 1488 ], 1489 ) 1490 1491 cc_binary( 1492 name = "mlir-cuda-runner", 1493 srcs = ["tools/mlir-cuda-runner/mlir-cuda-runner.cpp"], 1494 copts = ["-std=c++14"], 1495 data = [ 1496 ":tools/libcuda-runtime-wrappers.so", 1497 ], 1498 includes = ["include"], 1499 deps = [ 1500 ":GPUDialect", 1501 ":GPUDialectRegistration", 1502 ":GPUToNVVMTransforms", 1503 ":GPUTransforms", 1504 ":IR", 1505 ":LLVMDialect", 1506 ":LLVMTransforms", 1507 ":MlirJitRunner", 1508 ":NVVMDialect", 1509 ":Pass", 1510 ":Transforms", 1511 "//devtools/build/runtime:get_runfiles_dir", 1512 "//third_party/gpus/cuda:cuda_headers", 1513 "//third_party/gpus/cuda:cuda_runtime", 1514 "//third_party/gpus/cuda:libcuda", 1515 "@llvm//:support", 1516 ], 1517 ) 1518 1519 cc_library( 1520 name = "TableGen", 1521 srcs = [ 1522 "lib/TableGen/Argument.cpp", 1523 "lib/TableGen/Attribute.cpp", 1524 "lib/TableGen/Constraint.cpp", 1525 "lib/TableGen/Dialect.cpp", 1526 "lib/TableGen/Format.cpp", 1527 "lib/TableGen/OpTrait.cpp", 1528 "lib/TableGen/Operator.cpp", 1529 "lib/TableGen/Pattern.cpp", 1530 "lib/TableGen/Predicate.cpp", 1531 "lib/TableGen/Type.cpp", 1532 ], 1533 hdrs = [ 1534 "include/mlir/TableGen/Argument.h", 1535 "include/mlir/TableGen/Attribute.h", 1536 "include/mlir/TableGen/Constraint.h", 1537 "include/mlir/TableGen/Dialect.h", 1538 "include/mlir/TableGen/Format.h", 1539 "include/mlir/TableGen/GenInfo.h", 1540 "include/mlir/TableGen/GenNameParser.h", 1541 "include/mlir/TableGen/OpTrait.h", 1542 "include/mlir/TableGen/Operator.h", 1543 "include/mlir/TableGen/Pattern.h", 1544 "include/mlir/TableGen/Predicate.h", 1545 "include/mlir/TableGen/Region.h", 1546 "include/mlir/TableGen/Type.h", 1547 ], 1548 copts = ["-std=c++14"], 1549 includes = ["include"], 1550 deps = [ 1551 ":Support", 1552 "@llvm//:support", 1553 "@llvm//:tablegen", 1554 ], 1555 ) 1556 1557 cc_binary( 1558 name = "mlir-tblgen", 1559 srcs = [ 1560 "tools/mlir-tblgen/EnumsGen.cpp", 1561 "tools/mlir-tblgen/LLVMIRConversionGen.cpp", 1562 "tools/mlir-tblgen/OpDefinitionsGen.cpp", 1563 "tools/mlir-tblgen/OpDocGen.cpp", 1564 "tools/mlir-tblgen/OpInterfacesGen.cpp", 1565 "tools/mlir-tblgen/ReferenceImplGen.cpp", 1566 "tools/mlir-tblgen/RewriterGen.cpp", 1567 "tools/mlir-tblgen/SPIRVUtilsGen.cpp", 1568 "tools/mlir-tblgen/StructsGen.cpp", 1569 "tools/mlir-tblgen/mlir-tblgen.cpp", 1570 ], 1571 copts = ["-std=c++14"], 1572 includes = ["include"], 1573 linkopts = [ 1574 "-lm", 1575 "-lpthread", 1576 ], 1577 deps = [ 1578 ":Support", 1579 ":TableGen", 1580 "@llvm//:config", 1581 "@llvm//:support", 1582 "@llvm//:tablegen", 1583 ], 1584 ) 1585 1586 filegroup( 1587 name = "QuantizationOpsTdFiles", 1588 srcs = [ 1589 "include/mlir/Dialect/QuantOps/QuantOps.td", 1590 "include/mlir/Dialect/QuantOps/QuantPredicates.td", 1591 ":OpBaseTdFiles", 1592 ], 1593 ) 1594 1595 ## QuantOps dialect 1596 gentbl( 1597 name = "QuantOpsIncGen", 1598 tbl_outs = [ 1599 ( 1600 "-gen-op-decls", 1601 "include/mlir/Dialect/QuantOps/QuantOps.h.inc", 1602 ), 1603 ( 1604 "-gen-op-defs", 1605 "include/mlir/Dialect/QuantOps/QuantOps.cpp.inc", 1606 ), 1607 ( 1608 "-gen-op-doc", 1609 "g3doc/Dialects/QuantOps/QuantOps.md", 1610 ), 1611 ], 1612 tblgen = ":mlir-tblgen", 1613 td_file = "include/mlir/Dialect/QuantOps/QuantOps.td", 1614 td_srcs = [ 1615 ":QuantizationOpsTdFiles", 1616 ], 1617 ) 1618 1619 cc_library( 1620 name = "QuantOps", 1621 srcs = [ 1622 "include/mlir/Dialect/QuantOps/QuantOps.cpp.inc", 1623 "include/mlir/Dialect/QuantOps/QuantOps.h.inc", 1624 "lib/Dialect/QuantOps/IR/QuantOps.cpp", 1625 "lib/Dialect/QuantOps/IR/QuantTypes.cpp", 1626 "lib/Dialect/QuantOps/IR/TypeDetail.h", 1627 "lib/Dialect/QuantOps/IR/TypeParser.cpp", 1628 "lib/Dialect/QuantOps/Transforms/ConvertConst.cpp", 1629 "lib/Dialect/QuantOps/Transforms/ConvertSimQuant.cpp", 1630 "lib/Dialect/QuantOps/Utils/FakeQuantSupport.cpp", 1631 "lib/Dialect/QuantOps/Utils/QuantizeUtils.cpp", 1632 "lib/Dialect/QuantOps/Utils/UniformSupport.cpp", 1633 ], 1634 hdrs = [ 1635 "include/mlir/Dialect/QuantOps/FakeQuantSupport.h", 1636 "include/mlir/Dialect/QuantOps/Passes.h", 1637 "include/mlir/Dialect/QuantOps/QuantOps.h", 1638 "include/mlir/Dialect/QuantOps/QuantTypes.h", 1639 "include/mlir/Dialect/QuantOps/QuantizeUtils.h", 1640 "include/mlir/Dialect/QuantOps/UniformSupport.h", 1641 ], 1642 copts = ["-std=c++14"], 1643 deps = [ 1644 ":Analysis", 1645 ":IR", 1646 ":Pass", 1647 ":QuantOpsIncGen", 1648 ":StandardOps", 1649 ":Support", 1650 ":TransformUtils", 1651 "@llvm//:support", 1652 ], 1653 alwayslink = 1, 1654 ) 1655 1656 cc_library( 1657 name = "QuantOpsDialectRegistration", 1658 srcs = ["lib/Dialect/QuantOps/IR/DialectRegistration.cpp"], 1659 copts = ["-std=c++14"], 1660 includes = ["include"], 1661 deps = [ 1662 ":IR", 1663 ":QuantOps", 1664 "@llvm//:support", 1665 ], 1666 alwayslink = 1, 1667 ) 1668 1669 filegroup( 1670 name = "FxpMathOpsTdFiles", 1671 srcs = [ 1672 "include/mlir/Dialect/FxpMathOps/FxpMathOps.td", 1673 "include/mlir/Dialect/QuantOps/QuantPredicates.td", 1674 ":OpBaseTdFiles", 1675 ], 1676 ) 1677 1678 ## FxpMathOps dialect 1679 gentbl( 1680 name = "FxpMathOpsIncGen", 1681 tbl_outs = [ 1682 ( 1683 "-gen-op-decls", 1684 "include/mlir/Dialect/FxpMathOps/FxpMathOps.h.inc", 1685 ), 1686 ( 1687 "-gen-op-defs", 1688 "include/mlir/Dialect/FxpMathOps/FxpMathOps.cpp.inc", 1689 ), 1690 ( 1691 "-gen-op-doc", 1692 "g3doc/Dialects/FxpMathOps/FxpMathOps.md", 1693 ), 1694 ], 1695 tblgen = ":mlir-tblgen", 1696 td_file = "include/mlir/Dialect/FxpMathOps/FxpMathOps.td", 1697 td_srcs = [ 1698 ":FxpMathOpsTdFiles", 1699 ], 1700 ) 1701 1702 cc_library( 1703 name = "FxpMathOps", 1704 srcs = [ 1705 "include/mlir/Dialect/FxpMathOps/FxpMathOps.cpp.inc", 1706 "include/mlir/Dialect/FxpMathOps/FxpMathOps.h.inc", 1707 "lib/Dialect/FxpMathOps/IR/FxpMathOps.cpp", 1708 "lib/Dialect/FxpMathOps/Transforms/LowerUniformRealMath.cpp", 1709 "lib/Dialect/FxpMathOps/Transforms/UniformKernelUtils.h", 1710 ], 1711 hdrs = [ 1712 "include/mlir/Dialect/FxpMathOps/FxpMathOps.h", 1713 "include/mlir/Dialect/FxpMathOps/Passes.h", 1714 ], 1715 copts = ["-std=c++14"], 1716 deps = [ 1717 ":Analysis", 1718 ":FxpMathOpsIncGen", 1719 ":IR", 1720 ":Pass", 1721 ":QuantOps", 1722 ":StandardOps", 1723 ":Support", 1724 ":TransformUtils", 1725 "@llvm//:support", 1726 ], 1727 alwayslink = 1, 1728 ) 1729 1730 cc_library( 1731 name = "FxpMathOpsDialectRegistration", 1732 srcs = ["lib/Dialect/FxpMathOps/IR/DialectRegistration.cpp"], 1733 copts = ["-std=c++14"], 1734 includes = ["include"], 1735 deps = [ 1736 ":FxpMathOps", 1737 ":IR", 1738 "@llvm//:support", 1739 ], 1740 alwayslink = 1, 1741 ) 1742 1743 filegroup( 1744 name = "LinalgOpsTdFiles", 1745 srcs = [ 1746 "include/mlir/Dialect/Linalg/IR/LinalgBase.td", 1747 "include/mlir/Dialect/Linalg/IR/LinalgOps.td", 1748 ":AffineOpsTdFiles", 1749 ":OpBaseTdFiles", 1750 ], 1751 ) 1752 1753 gentbl( 1754 name = "LinalgOpsIncGen", 1755 tbl_outs = [ 1756 ( 1757 "-gen-op-decls", 1758 "include/mlir/Dialect/Linalg/IR/LinalgOps.h.inc", 1759 ), 1760 ( 1761 "-gen-op-defs", 1762 "include/mlir/Dialect/Linalg/IR/LinalgOps.cpp.inc", 1763 ), 1764 ], 1765 tblgen = ":mlir-tblgen", 1766 td_file = "include/mlir/Dialect/Linalg/IR/LinalgOps.td", 1767 td_srcs = [ 1768 ":LinalgOpsTdFiles", 1769 ], 1770 ) 1771 1772 filegroup( 1773 name = "LinalgLibraryOpsTdFiles", 1774 srcs = [ 1775 "include/mlir/Dialect/Linalg/IR/LinalgBase.td", 1776 "include/mlir/Dialect/Linalg/IR/LinalgLibraryOps.td", 1777 ":AffineOpsTdFiles", 1778 ":OpBaseTdFiles", 1779 ], 1780 ) 1781 1782 gentbl( 1783 name = "LinalgLibraryOpsIncGen", 1784 tbl_outs = [ 1785 ( 1786 "-gen-op-decls", 1787 "include/mlir/Dialect/Linalg/IR/LinalgLibraryOps.h.inc", 1788 ), 1789 ( 1790 "-gen-op-defs", 1791 "include/mlir/Dialect/Linalg/IR/LinalgLibraryOps.cpp.inc", 1792 ), 1793 ( 1794 "-gen-op-interface-decls", 1795 "include/mlir/Dialect/Linalg/IR/LinalgLibraryOpInterfaces.h.inc", 1796 ), 1797 ( 1798 "-gen-op-interface-defs", 1799 "include/mlir/Dialect/Linalg/IR/LinalgLibraryOpInterfaces.cpp.inc", 1800 ), 1801 ], 1802 tblgen = ":mlir-tblgen", 1803 td_file = "include/mlir/Dialect/Linalg/IR/LinalgLibraryOps.td", 1804 td_srcs = [ 1805 ":LinalgLibraryOpsTdFiles", 1806 ], 1807 ) 1808 1809 cc_library( 1810 name = "Linalg", 1811 srcs = [ 1812 "lib/Dialect/Linalg/Analysis/DependenceAnalysis.cpp", 1813 "lib/Dialect/Linalg/IR/LinalgOps.cpp", 1814 "lib/Dialect/Linalg/IR/LinalgTypes.cpp", 1815 "lib/Dialect/Linalg/Transforms/Fusion.cpp", 1816 "lib/Dialect/Linalg/Transforms/LowerToLLVMDialect.cpp", 1817 "lib/Dialect/Linalg/Transforms/LowerToLoops.cpp", 1818 "lib/Dialect/Linalg/Transforms/Tiling.cpp", 1819 "lib/Dialect/Linalg/Utils/Utils.cpp", 1820 ], 1821 hdrs = [ 1822 "include/mlir/Dialect/Linalg/Analysis/DependenceAnalysis.h", 1823 "include/mlir/Dialect/Linalg/IR/LinalgOps.h", 1824 "include/mlir/Dialect/Linalg/IR/LinalgTraits.h", 1825 "include/mlir/Dialect/Linalg/IR/LinalgTypes.h", 1826 "include/mlir/Dialect/Linalg/Passes.h", 1827 "include/mlir/Dialect/Linalg/Utils/Intrinsics.h", 1828 "include/mlir/Dialect/Linalg/Utils/Utils.h", 1829 ], 1830 copts = ["-std=c++14"], 1831 deps = [ 1832 ":AffineOps", 1833 ":CFGTransforms", 1834 ":EDSC", 1835 ":IR", 1836 ":LLVMDialect", 1837 ":LLVMTransforms", 1838 ":LinalgLibraryOpsIncGen", 1839 ":LinalgOpsIncGen", 1840 ":LoopOps", 1841 ":Parser", 1842 ":Pass", 1843 ":StandardOps", 1844 ":Support", 1845 ":TransformUtils", 1846 ":Transforms", 1847 ":VectorToLLVMTransforms", 1848 "@llvm//:core", 1849 "@llvm//:support", 1850 ], 1851 alwayslink = 1, 1852 ) 1853 1854 cc_library( 1855 name = "LinalgDialectRegistration", 1856 srcs = ["lib/Dialect/Linalg/LinalgRegistration.cpp"], 1857 copts = ["-std=c++14"], 1858 includes = ["include"], 1859 deps = [ 1860 ":IR", 1861 ":Linalg", 1862 "@llvm//:support", 1863 ], 1864 alwayslink = 1, 1865 ) 1866 1867 cc_library( 1868 name = "QuantizerSupportLib", 1869 srcs = [ 1870 "lib/Quantizer/Configurations/FxpMathConfig.cpp", 1871 "lib/Quantizer/Support/Configuration.cpp", 1872 "lib/Quantizer/Support/ConstraintAnalysisGraph.cpp", 1873 "lib/Quantizer/Support/Metadata.cpp", 1874 "lib/Quantizer/Support/Statistics.cpp", 1875 "lib/Quantizer/Support/TypeUtils.cpp", 1876 "lib/Quantizer/Support/UniformConstraints.cpp", 1877 "lib/Quantizer/Support/UniformSolvers.cpp", 1878 ], 1879 hdrs = [ 1880 "include/mlir/Quantizer/Configurations/FxpMathConfig.h", 1881 "include/mlir/Quantizer/Support/Configuration.h", 1882 "include/mlir/Quantizer/Support/ConstraintAnalysisGraph.h", 1883 "include/mlir/Quantizer/Support/ConstraintAnalysisGraphTraits.h", 1884 "include/mlir/Quantizer/Support/Metadata.h", 1885 "include/mlir/Quantizer/Support/Rules.h", 1886 "include/mlir/Quantizer/Support/Statistics.h", 1887 "include/mlir/Quantizer/Support/TypeUtils.h", 1888 "include/mlir/Quantizer/Support/UniformConstraints.h", 1889 "include/mlir/Quantizer/Support/UniformSolvers.h", 1890 ], 1891 copts = ["-std=c++14"], 1892 includes = ["include"], 1893 deps = [ 1894 ":FxpMathOps", 1895 ":IR", 1896 ":QuantOps", 1897 ":StandardOps", 1898 "@llvm//:support", 1899 ], 1900 ) 1901 1902 cc_library( 1903 name = "QuantizerTransforms", 1904 srcs = [ 1905 "lib/Quantizer/Transforms/AddDefaultStatsTestPass.cpp", 1906 "lib/Quantizer/Transforms/InferQuantizedTypesPass.cpp", 1907 "lib/Quantizer/Transforms/RemoveInstrumentationPass.cpp", 1908 ], 1909 hdrs = [ 1910 "include/mlir/Quantizer/Transforms/Passes.h", 1911 ], 1912 copts = ["-std=c++14"], 1913 deps = [ 1914 ":IR", 1915 ":Pass", 1916 ":QuantOps", 1917 ":QuantizerSupportLib", 1918 ":Support", 1919 "@llvm//:support", 1920 ], 1921 alwayslink = 1, 1922 ) 1923 1924 filegroup( 1925 name = "VectorOpsTdFiles", 1926 srcs = [ 1927 "include/mlir/Dialect/VectorOps/VectorOps.td", 1928 ":OpBaseTdFiles", 1929 ], 1930 ) 1931 1932 gentbl( 1933 name = "VectorOpsIncGen", 1934 tbl_outs = [ 1935 ( 1936 "-gen-op-decls", 1937 "include/mlir/Dialect/VectorOps/VectorOps.h.inc", 1938 ), 1939 ( 1940 "-gen-op-defs", 1941 "include/mlir/Dialect/VectorOps/VectorOps.cpp.inc", 1942 ), 1943 ], 1944 tblgen = ":mlir-tblgen", 1945 td_file = "include/mlir/Dialect/VectorOps/VectorOps.td", 1946 td_srcs = [ 1947 ":VectorOpsTdFiles", 1948 ], 1949 ) 1950 1951 cc_library( 1952 name = "VectorToLLVMTransforms", 1953 srcs = ["lib/Conversion/VectorToLLVM/VectorToLLVM.cpp"], 1954 hdrs = [ 1955 "include/mlir/Conversion/VectorToLLVM/VectorToLLVM.h", 1956 ], 1957 copts = ["-std=c++14"], 1958 includes = ["include"], 1959 deps = [ 1960 ":IR", 1961 ":LLVMDialect", 1962 ":LLVMTransforms", 1963 ":Pass", 1964 ":Transforms", 1965 ":VectorOps", 1966 "@llvm//:core", 1967 "@llvm//:support", 1968 ], 1969 alwayslink = 1, 1970 ) 1971 1972 # To reference all tablegen files here when checking for updates to them. 1973 filegroup( 1974 name = "TdFiles", 1975 srcs = glob(["**/*.td"]), 1976 )