blob: c21ee686988ab36491d2cc5b004351a608e75be2 [file] [log] [blame]
Geoffrey Martin-Noble552d3f82021-05-25 17:56:09 -07001# Copyright 2019 The IREE Authors
Geoffrey Martin-Noblebb37bb82019-11-06 14:35:36 -08002#
Geoffrey Martin-Noble552d3f82021-05-25 17:56:09 -07003# Licensed under the Apache License v2.0 with LLVM Exceptions.
4# See https://llvm.org/LICENSE.txt for license information.
5# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
Geoffrey Martin-Noblebb37bb82019-11-06 14:35:36 -08006
Scott Todd44f95f82022-06-01 09:59:32 -07007# Tools IREE provides for compiling, executing, and benchmarking programs, as
8# well as other utilities.
9#
10# Only binary targets and their associated main files should go in this
11# directory. Library targets and header files should be placed in the
12# appropriate subtree, e.g. `compiler/src/iree/compiler/Tools/`.
13#
14# Programs with a dependency on the compiler are not designed to run on device
15# platforms (e.g. Android), so they are tagged "hostonly".
Stella Laurenzobd659a12019-10-23 10:17:48 -070016
Stella Laurenzobd659a12019-10-23 10:17:48 -070017package(
18 default_visibility = ["//visibility:public"],
Geoffrey Martin-Noble083ac8e2020-07-15 20:10:49 -070019 features = ["layering_check"],
Stella Laurenzobd659a12019-10-23 10:17:48 -070020 licenses = ["notice"], # Apache 2.0
21)
22
Scott Toddf57ab752022-05-23 10:36:44 -070023exports_files(["lit.cfg.py"])
24
Ben Vanik493b0e22020-11-17 20:47:11 -080025cc_binary(
Geoffrey Martin-Noble34190262020-02-06 10:43:58 -080026 name = "iree-benchmark-module",
Geoffrey Martin-Noble0a6b9cc2020-09-22 20:17:05 -070027 srcs = ["iree-benchmark-module-main.cc"],
Geoffrey Martin-Noble34190262020-02-06 10:43:58 -080028 deps = [
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070029 "//runtime/src/iree/base",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070030 "//runtime/src/iree/base:tracing",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070031 "//runtime/src/iree/base/internal:flags",
32 "//runtime/src/iree/hal",
Ben Vanike9ae9632022-10-04 08:13:30 -070033 "//runtime/src/iree/modules/hal:types",
Ben Vanik007109f2022-08-03 07:26:50 -070034 "//runtime/src/iree/tooling:context_util",
Ben Vanik097d8262022-06-09 11:35:04 -070035 "//runtime/src/iree/tooling:device_util",
Ben Vanik7958fc92023-01-12 08:45:32 -080036 "//runtime/src/iree/tooling:vm_util",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070037 "//runtime/src/iree/vm",
Ben Vanik01353432020-11-17 03:15:40 -080038 "@com_google_benchmark//:benchmark",
39 ],
Geoffrey Martin-Noble34190262020-02-06 10:43:58 -080040)
41
Ben Vanik493b0e22020-11-17 20:47:11 -080042cc_binary(
Ben Vanik50e46cd2021-06-28 10:19:35 -070043 name = "iree-benchmark-trace",
44 srcs = ["iree-benchmark-trace-main.c"],
45 deps = [
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070046 "//runtime/src/iree/base",
47 "//runtime/src/iree/base:tracing",
48 "//runtime/src/iree/base/internal:atomic_slist",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070049 "//runtime/src/iree/base/internal:flags",
Ben Vanik1c59c112022-06-08 09:13:34 -070050 "//runtime/src/iree/base/internal:path",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070051 "//runtime/src/iree/hal",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070052 "//runtime/src/iree/testing:benchmark",
Ben Vanik097d8262022-06-09 11:35:04 -070053 "//runtime/src/iree/tooling:device_util",
54 "//runtime/src/iree/tooling:trace_replay",
55 "//runtime/src/iree/tooling:yaml_util",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070056 "//runtime/src/iree/vm",
Ben Vanik50e46cd2021-06-28 10:19:35 -070057 "@com_github_yaml_libyaml//:yaml",
58 ],
59)
60
61cc_binary(
inho9606995d0b72021-01-05 17:07:16 +090062 name = "iree-check-module",
63 testonly = True,
64 srcs = ["iree-check-module-main.cc"],
65 deps = [
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070066 "//runtime/src/iree/base",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070067 "//runtime/src/iree/base:core_headers",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070068 "//runtime/src/iree/base:tracing",
69 "//runtime/src/iree/base/internal:file_io",
70 "//runtime/src/iree/base/internal:flags",
71 "//runtime/src/iree/hal",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070072 "//runtime/src/iree/modules/check",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070073 "//runtime/src/iree/testing:gtest",
Ben Vanikbcec0b52022-08-06 08:45:46 -070074 "//runtime/src/iree/tooling:context_util",
Ben Vanik7859d632022-10-24 14:37:28 -070075 "//runtime/src/iree/tooling:device_util",
Ben Vanik7958fc92023-01-12 08:45:32 -080076 "//runtime/src/iree/tooling:vm_util",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070077 "//runtime/src/iree/vm",
Ben Vanikcf49d692023-02-24 20:24:09 -080078 "//runtime/src/iree/vm/bytecode:module",
inho9606995d0b72021-01-05 17:07:16 +090079 ],
80)
81
82cc_binary(
Ben Vanikc319c2d2023-02-24 18:18:47 -080083 name = "iree-dump-instruments",
84 srcs = ["iree-dump-instruments-main.c"],
85 deps = [
86 "//runtime/src/iree/base",
87 "//runtime/src/iree/base/internal:file_io",
88 "//runtime/src/iree/base/internal/flatcc:parsing",
89 "//runtime/src/iree/schemas/instruments",
90 "//runtime/src/iree/schemas/instruments:dispatch_def_c_fbs",
91 ],
92)
93
94cc_binary(
Ben Vanik3555f142019-12-30 13:44:41 -080095 name = "iree-dump-module",
Ben Vanik35bc9a12022-03-09 09:05:58 -080096 srcs = ["iree-dump-module-main.c"],
Ben Vanik3555f142019-12-30 13:44:41 -080097 deps = [
Stella Laurenzo9bde61b2022-04-21 15:37:14 -070098 "//runtime/src/iree/base",
99 "//runtime/src/iree/base/internal:file_io",
100 "//runtime/src/iree/base/internal/flatcc:debugging",
101 "//runtime/src/iree/schemas:bytecode_module_def_c_fbs",
Ben Vanikcf49d692023-02-24 20:24:09 -0800102 "//runtime/src/iree/vm/bytecode:module",
Ben Vanik3555f142019-12-30 13:44:41 -0800103 ],
104)
105
Scott Todd44f95f82022-06-01 09:59:32 -0700106cc_binary(
107 name = "iree-opt",
Geoffrey Martin-Noble0a6b9cc2020-09-22 20:17:05 -0700108 srcs = ["iree-opt-main.cc"],
Scott Todd44f95f82022-06-01 09:59:32 -0700109 tags = ["hostonly"],
Stella Laurenzobd659a12019-10-23 10:17:48 -0700110 deps = [
Stella Laurenzo309dc5b2023-02-22 23:07:43 -0800111 "//compiler/bindings/c:headers",
Stella Laurenzo7ec09ce2022-11-24 11:13:52 -0800112 "//compiler/src/iree/compiler/API2:Impl",
Marius Brehler2301fcb2020-04-16 14:35:17 -0700113 ],
Ben Vanik52245042019-12-13 14:20:00 -0800114)
115
Ben Vanik493b0e22020-11-17 20:47:11 -0800116cc_binary(
Scott Todd111be2e2021-06-10 12:56:53 -0700117 name = "iree-mlir-lsp-server",
118 srcs = ["iree-mlir-lsp-server.cc"],
119 deps = [
Stella Laurenzo309dc5b2023-02-22 23:07:43 -0800120 "//compiler/bindings/c:headers",
Stella Laurenzo7ec09ce2022-11-24 11:13:52 -0800121 "//compiler/src/iree/compiler/API2:Impl",
Scott Todd111be2e2021-06-10 12:56:53 -0700122 ],
123)
124
Ben Vanik493b0e22020-11-17 20:47:11 -0800125cc_binary(
Stella Laurenzobd659a12019-10-23 10:17:48 -0700126 name = "iree-run-mlir",
Geoffrey Martin-Noble0a6b9cc2020-09-22 20:17:05 -0700127 srcs = ["iree-run-mlir-main.cc"],
Geoffrey Martin-Noble48efde62020-03-23 13:23:44 -0700128 tags = ["hostonly"],
Stella Laurenzobd659a12019-10-23 10:17:48 -0700129 deps = [
Stella Laurenzofc0442f2022-12-08 17:17:27 -0800130 "//compiler/src/iree/compiler/ConstEval",
Stella Laurenzo41a2ceb2022-04-29 12:49:36 -0700131 "//compiler/src/iree/compiler/Dialect/HAL/Target",
132 "//compiler/src/iree/compiler/Dialect/VM/Target:init_targets",
133 "//compiler/src/iree/compiler/Dialect/VM/Target/Bytecode",
Stella Laurenzof44859d2022-05-31 20:00:19 -0700134 "//compiler/src/iree/compiler/Pipelines",
Scott Todd1f1ef562022-05-10 08:47:32 -0700135 "//compiler/src/iree/compiler/Tools:init_passes_and_dialects",
136 "//compiler/src/iree/compiler/Tools:init_targets",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700137 "//runtime/src/iree/base",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700138 "//runtime/src/iree/base:tracing",
139 "//runtime/src/iree/base/internal:flags",
140 "//runtime/src/iree/hal",
Ben Vanike9ae9632022-10-04 08:13:30 -0700141 "//runtime/src/iree/modules/hal:types",
Ben Vanik007109f2022-08-03 07:26:50 -0700142 "//runtime/src/iree/tooling:context_util",
Ben Vanik097d8262022-06-09 11:35:04 -0700143 "//runtime/src/iree/tooling:device_util",
Ben Vanik7958fc92023-01-12 08:45:32 -0800144 "//runtime/src/iree/tooling:vm_util",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700145 "//runtime/src/iree/vm",
Ben Vanikcf49d692023-02-24 20:24:09 -0800146 "//runtime/src/iree/vm/bytecode:module",
Geoffrey Martin-Noble9db81422020-06-10 18:28:13 -0700147 "@llvm-project//llvm:Support",
Jacques Pienaar641453c2019-12-30 07:56:43 -0800148 "@llvm-project//mlir:IR",
Benjamin Kramereeb56e72021-03-04 05:21:32 -0800149 "@llvm-project//mlir:LLVMToLLVMIRTranslation",
Jacques Pienaar641453c2019-12-30 07:56:43 -0800150 "@llvm-project//mlir:Parser",
151 "@llvm-project//mlir:Pass",
152 "@llvm-project//mlir:Support",
Benjamin Kramereeb56e72021-03-04 05:21:32 -0800153 "@llvm-project//mlir:ToLLVMIRTranslation",
Ben Vanik01353432020-11-17 03:15:40 -0800154 ],
Geoffrey Martin-Noblee64004d2020-02-03 16:13:46 -0800155)
156
Ben Vanik493b0e22020-11-17 20:47:11 -0800157cc_binary(
Geoffrey Martin-Noblee64004d2020-02-03 16:13:46 -0800158 name = "iree-run-module",
Geoffrey Martin-Noble0a6b9cc2020-09-22 20:17:05 -0700159 srcs = ["iree-run-module-main.cc"],
Geoffrey Martin-Noblee64004d2020-02-03 16:13:46 -0800160 deps = [
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700161 "//runtime/src/iree/base",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700162 "//runtime/src/iree/base:tracing",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700163 "//runtime/src/iree/base/internal:flags",
164 "//runtime/src/iree/hal",
Ben Vanike98a03b2022-09-23 14:17:05 -0700165 "//runtime/src/iree/modules/hal:types",
166 "//runtime/src/iree/tooling:comparison",
Ben Vanik007109f2022-08-03 07:26:50 -0700167 "//runtime/src/iree/tooling:context_util",
Ben Vanik7859d632022-10-24 14:37:28 -0700168 "//runtime/src/iree/tooling:device_util",
Ben Vanikc319c2d2023-02-24 18:18:47 -0800169 "//runtime/src/iree/tooling:instrument_util",
Ben Vanik7958fc92023-01-12 08:45:32 -0800170 "//runtime/src/iree/tooling:vm_util",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700171 "//runtime/src/iree/vm",
Ben Vanik01353432020-11-17 03:15:40 -0800172 ],
Ben Vanik5f24fb52019-12-23 15:50:56 -0800173)
174
Ben Vanik493b0e22020-11-17 20:47:11 -0800175cc_binary(
Ben Vanikabe6c762021-06-27 21:57:07 -0700176 name = "iree-run-trace",
177 srcs = ["iree-run-trace-main.c"],
178 deps = [
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700179 "//runtime/src/iree/base",
180 "//runtime/src/iree/base:tracing",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700181 "//runtime/src/iree/base/internal:flags",
Ben Vanik1c59c112022-06-08 09:13:34 -0700182 "//runtime/src/iree/base/internal:path",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700183 "//runtime/src/iree/hal",
Ben Vanik097d8262022-06-09 11:35:04 -0700184 "//runtime/src/iree/tooling:device_util",
185 "//runtime/src/iree/tooling:trace_replay",
186 "//runtime/src/iree/tooling:yaml_util",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700187 "//runtime/src/iree/vm",
Ben Vanikabe6c762021-06-27 21:57:07 -0700188 "@com_github_yaml_libyaml//:yaml",
189 ],
190)
191
192cc_binary(
bjacobce5ee952021-11-01 22:41:10 -0400193 name = "iree-e2e-matmul-test",
194 srcs = ["iree-e2e-matmul-test.c"],
195 deps = [
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700196 "//runtime/src/iree/base",
197 "//runtime/src/iree/base:core_headers",
198 "//runtime/src/iree/base:tracing",
Manish Gupta0a6cdf02022-11-08 22:12:02 -0800199 "//runtime/src/iree/base/internal",
bjacob27ded292022-09-06 16:02:33 -0400200 "//runtime/src/iree/base/internal:cpu",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700201 "//runtime/src/iree/base/internal:flags",
Ben Vanik1c59c112022-06-08 09:13:34 -0700202 "//runtime/src/iree/base/internal:path",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700203 "//runtime/src/iree/hal",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700204 "//runtime/src/iree/modules/hal",
Ben Vanik097d8262022-06-09 11:35:04 -0700205 "//runtime/src/iree/tooling:device_util",
206 "//runtime/src/iree/tooling:trace_replay",
207 "//runtime/src/iree/tooling:yaml_util",
Stella Laurenzo9bde61b2022-04-21 15:37:14 -0700208 "//runtime/src/iree/vm",
bjacobce5ee952021-11-01 22:41:10 -0400209 "@com_github_yaml_libyaml//:yaml",
210 ],
211)
212
213cc_binary(
bjacob886ac3e2023-03-07 14:25:01 -0500214 name = "iree-cpuinfo",
215 srcs = ["iree-cpuinfo.c"],
216 deps = [
217 "//runtime/src/iree/base",
218 "//runtime/src/iree/base/internal:cpu",
219 "//runtime/src/iree/schemas:cpu_data",
220 ],
221)
222
223cc_binary(
Ben Vanik7a6fa7a2019-11-06 14:01:41 -0800224 name = "iree-tblgen",
Ben Vanikd4bb8712020-11-16 05:52:30 -0800225 srcs = [
Stella Laurenzo41a2ceb2022-04-29 12:49:36 -0700226 "//compiler/src/iree/compiler/Dialect/VM/Tools:GenSrcs",
Thomas4c2029f2022-08-15 19:20:14 -0700227 "@llvm-project//mlir:tools/mlir-tblgen/mlir-tblgen.cpp",
Ben Vanikd4bb8712020-11-16 05:52:30 -0800228 ],
Geoffrey Martin-Noble48efde62020-03-23 13:23:44 -0700229 tags = ["hostonly"],
Ben Vanik7a6fa7a2019-11-06 14:01:41 -0800230 deps = [
Geoffrey Martin-Noblef5b323e2021-01-12 18:32:08 -0800231 "//build_tools:default_linkopts",
Stella Laurenzo41a2ceb2022-04-29 12:49:36 -0700232 "//compiler/src/iree/compiler/Utils",
Ben Vanikd4bb8712020-11-16 05:52:30 -0800233 "@llvm-project//llvm:Support",
234 "@llvm-project//llvm:TableGen",
Jacques Pienaar641453c2019-12-30 07:56:43 -0800235 "@llvm-project//mlir:MlirTableGenMain",
236 "@llvm-project//mlir:Support",
237 "@llvm-project//mlir:TableGen",
Ben Vanik7a6fa7a2019-11-06 14:01:41 -0800238 ],
239)
240
Ben Vanik493b0e22020-11-17 20:47:11 -0800241cc_binary(
Stella Laurenzo7f2972c2022-03-19 14:09:43 -0700242 name = "iree-compile",
243 srcs = ["iree-compile-main.cc"],
Stella Laurenzoae1c3a22022-03-17 11:17:58 -0700244 tags = ["hostonly"],
245 deps = [
Stella Laurenzo309dc5b2023-02-22 23:07:43 -0800246 "//compiler/bindings/c:headers",
Stella Laurenzo7ec09ce2022-11-24 11:13:52 -0800247 "//compiler/src/iree/compiler/API2:Impl",
Stella Laurenzoae1c3a22022-03-17 11:17:58 -0700248 ],
249)