71 lines · plain
1# Description:2# MLIR Tutorial3 4load("@rules_cc//cc:defs.bzl", "cc_binary")5load("//mlir:tblgen.bzl", "gentbl_cc_library", "td_library")6 7licenses(["notice"])8 9package(default_visibility = ["//visibility:public"])10 11td_library(12 name = "ToyOpsTdFiles",13 srcs = [14 "include/toy/Ops.td",15 ],16 includes = ["include"],17 deps = [18 "//mlir:FunctionInterfacesTdFiles",19 "//mlir:OpBaseTdFiles",20 "//mlir:SideEffectInterfacesTdFiles",21 ],22)23 24gentbl_cc_library(25 name = "ToyOpsIncGen",26 tbl_outs = {27 "include/toy/Ops.h.inc": ["-gen-op-decls"],28 "include/toy/Ops.cpp.inc": ["-gen-op-defs"],29 "include/toy/Dialect.h.inc": ["-gen-dialect-decls"],30 "include/toy/Dialect.cpp.inc": ["-gen-dialect-defs"],31 },32 tblgen = "//mlir:mlir-tblgen",33 td_file = "include/toy/Ops.td",34 deps = [":ToyOpsTdFiles"],35)36 37gentbl_cc_library(38 name = "ToyCombineIncGen",39 strip_include_prefix = "mlir",40 tbl_outs = {"mlir/ToyCombine.inc": ["-gen-rewriters"]},41 tblgen = "//mlir:mlir-tblgen",42 td_file = "mlir/ToyCombine.td",43 deps = [":ToyOpsTdFiles"],44)45 46cc_binary(47 name = "toyc-ch3",48 srcs = [49 "mlir/Dialect.cpp",50 "mlir/MLIRGen.cpp",51 "mlir/ToyCombine.cpp",52 "parser/AST.cpp",53 "toyc.cpp",54 ] + glob(["include/toy/*.h"]),55 includes = ["include/"],56 deps = [57 ":ToyCombineIncGen",58 ":ToyOpsIncGen",59 "//llvm:Support",60 "//mlir:Analysis",61 "//mlir:BytecodeReader",62 "//mlir:FunctionInterfaces",63 "//mlir:IR",64 "//mlir:Parser",65 "//mlir:Pass",66 "//mlir:SideEffectInterfaces",67 "//mlir:Support",68 "//mlir:Transforms",69 ],70)71