xref: /llvm-project/utils/bazel/llvm-project-overlay/mlir/examples/toy/Ch3/BUILD.bazel (revision 43b291cbecca155a905f52f37b2b1bea7e9aba76)
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