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