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  )