Move runtime libraries from iree/tools/ into runtime/. (#9084)
Progress on https://github.com/google/iree/issues/8955, follow-up to https://github.com/google/iree/pull/9077.
This moves runtime library code from `iree/tools/utils` to `runtime/src/iree/tools/utils/`. The 'utils' name is still unfortunate (preferably each file would have a better place), but we can address that further down the line.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0a033d4..ea40f03 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -634,6 +634,7 @@
add_subdirectory(compiler)
endif()
+# tools/ can depend on compiler/ and runtime/
add_subdirectory(iree/tools)
if(IREE_BUILD_TRACY)
@@ -690,7 +691,7 @@
add_subdirectory(build_tools/benchmarks)
#-------------------------------------------------------------------------------
-# Transitional directories.
+# Transitional directories
#-------------------------------------------------------------------------------
# The runtime uses tools and targets from elsewhere in the tree in a way
@@ -698,6 +699,8 @@
# many things into top-level APIs). This should resolve once we finish
# relayering everything.
add_subdirectory(runtime)
+
+# samples/ can depend on anything, so we include it last
if(IREE_BUILD_SAMPLES)
add_subdirectory(samples)
endif()
diff --git a/compiler/src/iree/compiler/ConstEval/BUILD b/compiler/src/iree/compiler/ConstEval/BUILD
index 40bfa3d..a1d437d 100644
--- a/compiler/src/iree/compiler/ConstEval/BUILD
+++ b/compiler/src/iree/compiler/ConstEval/BUILD
@@ -74,10 +74,10 @@
],
deps = [
"//compiler/src/iree/compiler/Dialect/VM/Target/Bytecode",
- "//iree/tools/utils:vm_util",
"//runtime/src/iree/hal",
"//runtime/src/iree/hal/vmvx/registration",
"//runtime/src/iree/modules/hal",
+ "//runtime/src/iree/tools/utils:vm_util",
"//runtime/src/iree/vm",
"//runtime/src/iree/vm:bytecode_module",
"//runtime/src/iree/vm:cc",
diff --git a/iree/tools/BUILD b/iree/tools/BUILD
index e3e0e22..64c8267 100644
--- a/iree/tools/BUILD
+++ b/iree/tools/BUILD
@@ -17,7 +17,6 @@
name = "iree-benchmark-module",
srcs = ["iree-benchmark-module-main.cc"],
deps = [
- "//iree/tools/utils:vm_util",
"//runtime/src/iree/base",
"//runtime/src/iree/base:cc",
"//runtime/src/iree/base:tracing",
@@ -26,6 +25,7 @@
"//runtime/src/iree/hal",
"//runtime/src/iree/hal/drivers",
"//runtime/src/iree/modules/hal",
+ "//runtime/src/iree/tools/utils:vm_util",
"//runtime/src/iree/vm",
"//runtime/src/iree/vm:bytecode_module",
"//runtime/src/iree/vm:cc",
@@ -37,8 +37,6 @@
name = "iree-benchmark-trace",
srcs = ["iree-benchmark-trace-main.c"],
deps = [
- "//iree/tools/utils:trace_replay",
- "//iree/tools/utils:yaml_util",
"//runtime/src/iree/base",
"//runtime/src/iree/base:tracing",
"//runtime/src/iree/base/internal:atomic_slist",
@@ -47,6 +45,8 @@
"//runtime/src/iree/hal",
"//runtime/src/iree/hal/drivers",
"//runtime/src/iree/testing:benchmark",
+ "//runtime/src/iree/tools/utils:trace_replay",
+ "//runtime/src/iree/tools/utils:yaml_util",
"//runtime/src/iree/vm",
"@com_github_yaml_libyaml//:yaml",
],
@@ -57,7 +57,6 @@
testonly = True,
srcs = ["iree-check-module-main.cc"],
deps = [
- "//iree/tools/utils:vm_util",
"//runtime/src/iree/base",
"//runtime/src/iree/base:cc",
"//runtime/src/iree/base:core_headers",
@@ -70,6 +69,7 @@
"//runtime/src/iree/modules/check",
"//runtime/src/iree/modules/hal",
"//runtime/src/iree/testing:gtest",
+ "//runtime/src/iree/tools/utils:vm_util",
"//runtime/src/iree/vm",
"//runtime/src/iree/vm:bytecode_module",
],
@@ -129,7 +129,6 @@
"//compiler/src/iree/compiler/Tools:init_passes_and_dialects",
"//compiler/src/iree/compiler/Tools:init_targets",
"//compiler/src/iree/compiler/Translation:IREEVM",
- "//iree/tools/utils:vm_util",
"//runtime/src/iree/base",
"//runtime/src/iree/base:cc",
"//runtime/src/iree/base:logging",
@@ -138,6 +137,7 @@
"//runtime/src/iree/hal",
"//runtime/src/iree/hal/drivers",
"//runtime/src/iree/modules/hal",
+ "//runtime/src/iree/tools/utils:vm_util",
"//runtime/src/iree/vm",
"//runtime/src/iree/vm:bytecode_module",
"//runtime/src/iree/vm:cc",
@@ -155,7 +155,6 @@
name = "iree-run-module",
srcs = ["iree-run-module-main.cc"],
deps = [
- "//iree/tools/utils:vm_util",
"//runtime/src/iree/base",
"//runtime/src/iree/base:cc",
"//runtime/src/iree/base:tracing",
@@ -164,6 +163,7 @@
"//runtime/src/iree/hal",
"//runtime/src/iree/hal/drivers",
"//runtime/src/iree/modules/hal",
+ "//runtime/src/iree/tools/utils:vm_util",
"//runtime/src/iree/vm",
"//runtime/src/iree/vm:bytecode_module",
"//runtime/src/iree/vm:cc",
@@ -174,14 +174,14 @@
name = "iree-run-trace",
srcs = ["iree-run-trace-main.c"],
deps = [
- "//iree/tools/utils:trace_replay",
- "//iree/tools/utils:yaml_util",
"//runtime/src/iree/base",
"//runtime/src/iree/base:tracing",
"//runtime/src/iree/base/internal:file_path",
"//runtime/src/iree/base/internal:flags",
"//runtime/src/iree/hal",
"//runtime/src/iree/hal/drivers",
+ "//runtime/src/iree/tools/utils:trace_replay",
+ "//runtime/src/iree/tools/utils:yaml_util",
"//runtime/src/iree/vm",
"@com_github_yaml_libyaml//:yaml",
],
@@ -191,9 +191,6 @@
name = "iree-e2e-matmul-test",
srcs = ["iree-e2e-matmul-test.c"],
deps = [
- "//iree/tools/utils:cpu_features",
- "//iree/tools/utils:trace_replay",
- "//iree/tools/utils:yaml_util",
"//runtime/src/iree/base",
"//runtime/src/iree/base:core_headers",
"//runtime/src/iree/base:tracing",
@@ -202,6 +199,9 @@
"//runtime/src/iree/hal",
"//runtime/src/iree/hal/drivers",
"//runtime/src/iree/modules/hal",
+ "//runtime/src/iree/tools/utils:cpu_features",
+ "//runtime/src/iree/tools/utils:trace_replay",
+ "//runtime/src/iree/tools/utils:yaml_util",
"//runtime/src/iree/vm",
"@com_github_yaml_libyaml//:yaml",
],
diff --git a/iree/tools/CMakeLists.txt b/iree/tools/CMakeLists.txt
index b06a94b..d44da6d 100644
--- a/iree/tools/CMakeLists.txt
+++ b/iree/tools/CMakeLists.txt
@@ -6,8 +6,8 @@
# Doesn't use bazel_to_cmake because of various special logic throughout.
-# TODO(#6353)Tools has thread dependency in gtest and benchmark; they should
-# be separated into the runtime tools and compiler tools.
+# TODO(#6353): Tools has thread dependencies in gtest, benchmark, yaml, etc.
+# This should be split between runtime/compiler with optional threading support.
if(NOT IREE_ENABLE_THREADING)
return()
endif()
@@ -28,7 +28,6 @@
add_subdirectory(android)
add_subdirectory(test)
-add_subdirectory(utils)
iree_cc_binary(
NAME
diff --git a/runtime/src/iree/CMakeLists.txt b/runtime/src/iree/CMakeLists.txt
index 3b1f024..1e70c9d 100644
--- a/runtime/src/iree/CMakeLists.txt
+++ b/runtime/src/iree/CMakeLists.txt
@@ -4,12 +4,4 @@
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-add_subdirectory(base)
-add_subdirectory(builtins)
-add_subdirectory(hal)
-add_subdirectory(modules)
-add_subdirectory(runtime)
-add_subdirectory(schemas)
-add_subdirectory(task)
-add_subdirectory(testing)
-add_subdirectory(vm)
+iree_add_all_subdirs()
diff --git a/runtime/src/iree/tools/BUILD b/runtime/src/iree/tools/BUILD
new file mode 100644
index 0000000..cadf491
--- /dev/null
+++ b/runtime/src/iree/tools/BUILD
@@ -0,0 +1,11 @@
+# Copyright 2022 The IREE Authors
+#
+# Licensed under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+package(
+ default_visibility = ["//visibility:public"],
+ features = ["layering_check"],
+ licenses = ["notice"], # Apache 2.0
+)
diff --git a/runtime/src/iree/tools/CMakeLists.txt b/runtime/src/iree/tools/CMakeLists.txt
new file mode 100644
index 0000000..395824e
--- /dev/null
+++ b/runtime/src/iree/tools/CMakeLists.txt
@@ -0,0 +1,13 @@
+################################################################################
+# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from #
+# runtime/src/iree/tools/BUILD #
+# #
+# Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary #
+# CMake-only content. #
+# #
+# To disable autogeneration for this file entirely, delete this header. #
+################################################################################
+
+iree_add_all_subdirs()
+
+### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/iree/tools/utils/BUILD b/runtime/src/iree/tools/utils/BUILD
similarity index 91%
rename from iree/tools/utils/BUILD
rename to runtime/src/iree/tools/utils/BUILD
index 2229e41..21c9640 100644
--- a/iree/tools/utils/BUILD
+++ b/runtime/src/iree/tools/utils/BUILD
@@ -13,20 +13,12 @@
)
cc_library(
- name = "trace_replay",
- srcs = ["trace_replay.c"],
- hdrs = ["trace_replay.h"],
+ name = "cpu_features",
+ srcs = ["cpu_features.c"],
+ hdrs = ["cpu_features.h"],
deps = [
- ":yaml_util",
"//runtime/src/iree/base",
- "//runtime/src/iree/base:tracing",
- "//runtime/src/iree/base/internal:file_io",
- "//runtime/src/iree/base/internal:file_path",
- "//runtime/src/iree/hal",
- "//runtime/src/iree/modules/hal",
- "//runtime/src/iree/vm",
- "//runtime/src/iree/vm:bytecode_module",
- "@com_github_yaml_libyaml//:yaml",
+ "//runtime/src/iree/base:target_platform",
],
)
@@ -79,6 +71,32 @@
inline = True,
)
+iree_cmake_extra_content(
+ content = """
+# libyaml does not build cleanly on bare-metal systems
+if(IREE_ENABLE_THREADING)
+""",
+ inline = True,
+)
+
+cc_library(
+ name = "trace_replay",
+ srcs = ["trace_replay.c"],
+ hdrs = ["trace_replay.h"],
+ deps = [
+ ":yaml_util",
+ "//runtime/src/iree/base",
+ "//runtime/src/iree/base:tracing",
+ "//runtime/src/iree/base/internal:file_io",
+ "//runtime/src/iree/base/internal:file_path",
+ "//runtime/src/iree/hal",
+ "//runtime/src/iree/modules/hal",
+ "//runtime/src/iree/vm",
+ "//runtime/src/iree/vm:bytecode_module",
+ "@com_github_yaml_libyaml//:yaml",
+ ],
+)
+
cc_library(
name = "yaml_util",
srcs = ["yaml_util.c"],
@@ -89,12 +107,9 @@
],
)
-cc_library(
- name = "cpu_features",
- srcs = ["cpu_features.c"],
- hdrs = ["cpu_features.h"],
- deps = [
- "//runtime/src/iree/base",
- "//runtime/src/iree/base:target_platform",
- ],
+iree_cmake_extra_content(
+ content = """
+endif()
+""",
+ inline = True,
)
diff --git a/iree/tools/utils/CMakeLists.txt b/runtime/src/iree/tools/utils/CMakeLists.txt
similarity index 93%
rename from iree/tools/utils/CMakeLists.txt
rename to runtime/src/iree/tools/utils/CMakeLists.txt
index 045280e..8753d04 100644
--- a/iree/tools/utils/CMakeLists.txt
+++ b/runtime/src/iree/tools/utils/CMakeLists.txt
@@ -1,6 +1,6 @@
################################################################################
# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from #
-# iree/tools/utils/BUILD #
+# runtime/src/iree/tools/utils/BUILD #
# #
# Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary #
# CMake-only content. #
@@ -12,22 +12,14 @@
iree_cc_library(
NAME
- trace_replay
+ cpu_features
HDRS
- "trace_replay.h"
+ "cpu_features.h"
SRCS
- "trace_replay.c"
+ "cpu_features.c"
DEPS
- ::yaml_util
iree::base
- iree::base::internal::file_io
- iree::base::internal::file_path
- iree::base::tracing
- iree::hal
- iree::modules::hal
- iree::vm
- iree::vm::bytecode_module
- yaml
+ iree::base::target_platform
PUBLIC
)
@@ -73,6 +65,30 @@
endif()
+# libyaml does not build cleanly on bare-metal systems
+if(IREE_ENABLE_THREADING)
+
+iree_cc_library(
+ NAME
+ trace_replay
+ HDRS
+ "trace_replay.h"
+ SRCS
+ "trace_replay.c"
+ DEPS
+ ::yaml_util
+ iree::base
+ iree::base::internal::file_io
+ iree::base::internal::file_path
+ iree::base::tracing
+ iree::hal
+ iree::modules::hal
+ iree::vm
+ iree::vm::bytecode_module
+ yaml
+ PUBLIC
+)
+
iree_cc_library(
NAME
yaml_util
@@ -86,18 +102,7 @@
PUBLIC
)
-iree_cc_library(
- NAME
- cpu_features
- HDRS
- "cpu_features.h"
- SRCS
- "cpu_features.c"
- DEPS
- iree::base
- iree::base::target_platform
- PUBLIC
-)
+endif()
### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/iree/tools/utils/cpu_features.c b/runtime/src/iree/tools/utils/cpu_features.c
similarity index 100%
rename from iree/tools/utils/cpu_features.c
rename to runtime/src/iree/tools/utils/cpu_features.c
diff --git a/iree/tools/utils/cpu_features.h b/runtime/src/iree/tools/utils/cpu_features.h
similarity index 100%
rename from iree/tools/utils/cpu_features.h
rename to runtime/src/iree/tools/utils/cpu_features.h
diff --git a/iree/tools/utils/image_util.c b/runtime/src/iree/tools/utils/image_util.c
similarity index 97%
rename from iree/tools/utils/image_util.c
rename to runtime/src/iree/tools/utils/image_util.c
index adb83db..617425e 100644
--- a/iree/tools/utils/image_util.c
+++ b/runtime/src/iree/tools/utils/image_util.c
@@ -84,9 +84,9 @@
break;
}
default:
- return iree_make_status(IREE_STATUS_INVALID_ARGUMENT,
- "Input buffer shape rank %lu not supported",
- shape_rank);
+ return iree_make_status(
+ IREE_STATUS_INVALID_ARGUMENT,
+ "Input buffer shape rank %" PRIhsz " not supported", shape_rank);
}
// Drop the alpha channel if present.
int req_ch = (img_dims[2] >= 3) ? 3 : 0;
diff --git a/iree/tools/utils/image_util.h b/runtime/src/iree/tools/utils/image_util.h
similarity index 100%
rename from iree/tools/utils/image_util.h
rename to runtime/src/iree/tools/utils/image_util.h
diff --git a/iree/tools/utils/trace_replay.c b/runtime/src/iree/tools/utils/trace_replay.c
similarity index 100%
rename from iree/tools/utils/trace_replay.c
rename to runtime/src/iree/tools/utils/trace_replay.c
diff --git a/iree/tools/utils/trace_replay.h b/runtime/src/iree/tools/utils/trace_replay.h
similarity index 100%
rename from iree/tools/utils/trace_replay.h
rename to runtime/src/iree/tools/utils/trace_replay.h
diff --git a/iree/tools/utils/vm_util.cc b/runtime/src/iree/tools/utils/vm_util.cc
similarity index 100%
rename from iree/tools/utils/vm_util.cc
rename to runtime/src/iree/tools/utils/vm_util.cc
diff --git a/iree/tools/utils/vm_util.h b/runtime/src/iree/tools/utils/vm_util.h
similarity index 100%
rename from iree/tools/utils/vm_util.h
rename to runtime/src/iree/tools/utils/vm_util.h
diff --git a/iree/tools/utils/vm_util_test.cc b/runtime/src/iree/tools/utils/vm_util_test.cc
similarity index 100%
rename from iree/tools/utils/vm_util_test.cc
rename to runtime/src/iree/tools/utils/vm_util_test.cc
diff --git a/iree/tools/utils/yaml_util.c b/runtime/src/iree/tools/utils/yaml_util.c
similarity index 100%
rename from iree/tools/utils/yaml_util.c
rename to runtime/src/iree/tools/utils/yaml_util.c
diff --git a/iree/tools/utils/yaml_util.h b/runtime/src/iree/tools/utils/yaml_util.h
similarity index 100%
rename from iree/tools/utils/yaml_util.h
rename to runtime/src/iree/tools/utils/yaml_util.h