blob: 021b83ac730b5afb051806e8fa147aedd47dc1da [file]
# Copyright 2019 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
# HAL (Hardware Abstraction Layer).
# Subdirectories contain implementations for different hardware and
# software backends.
load("//build_tools/bazel:build_defs.oss.bzl", "iree_assert_no_dependency", "iree_runtime_cc_library", "iree_runtime_cc_test")
package(
default_visibility = ["//visibility:public"],
features = ["layering_check"],
licenses = ["notice"], # Apache 2.0
)
#===------------------------------------------------------------------------===#
# Layering checks
#===------------------------------------------------------------------------===#
# The HAL core library must not depend on threading:thread (which pulls in
# pthreads). The inline HAL module for bare-metal targets depends on :hal,
# and pthreads is not available on embedded platforms.
iree_assert_no_dependency(
name = "hal_no_thread_dep",
dependency = "//runtime/src/iree/base/threading:thread",
target = "//runtime/src/iree/hal",
)
#===------------------------------------------------------------------------===#
# Public API
#===------------------------------------------------------------------------===#
iree_runtime_cc_library(
name = "hal",
srcs = [
"allocator.c",
"allocator_heap.c",
"buffer.c",
"buffer_heap.c",
"buffer_transfer.c",
"buffer_view.c",
"buffer_view_util.c",
"channel.c",
"channel_provider.c",
"command_buffer.c",
"command_buffer_validation.c",
"device.c",
"device_group.c",
"driver.c",
"driver_registry.c",
"event.c",
"executable.c",
"executable_cache.c",
"fence.c",
"file.c",
"pool.c",
"pool_set.c",
"profile_metrics.c",
"profile_options.c",
"profile_sink.c",
"semaphore.c",
"string_util.c",
"topology.c",
"topology_builder.c",
],
hdrs = [
"allocator.h",
"api.h",
"buffer.h",
"buffer_heap_impl.h",
"buffer_transfer.h",
"buffer_view.h",
"buffer_view_util.h",
"channel.h",
"channel_provider.h",
"command_buffer.h",
"command_buffer_validation.h",
"detail.h",
"device.h",
"device_group.h",
"driver.h",
"driver_registry.h",
"event.h",
"executable.h",
"executable_cache.h",
"fence.h",
"file.h",
"pool.h",
"pool_set.h",
"profile_metrics.h",
"profile_options.h",
"profile_schema.h",
"profile_sink.h",
"queue.h",
"resource.h",
"semaphore.h",
"string_util.h",
"topology.h",
"topology_builder.h",
],
textual_hdrs = [
"profile_metrics.inc",
],
deps = [
"//runtime/src/iree/async",
"//runtime/src/iree/base",
"//runtime/src/iree/base/internal",
"//runtime/src/iree/base/internal:path",
"//runtime/src/iree/base/threading",
"//runtime/src/iree/hal/utils:platform_topology",
"//runtime/src/iree/io:file_handle",
],
)
iree_runtime_cc_test(
name = "device_test",
srcs = ["device_test.cc"],
deps = [
":hal",
"//runtime/src/iree/base",
"//runtime/src/iree/hal/testing:mock_device",
"//runtime/src/iree/testing:gtest",
"//runtime/src/iree/testing:gtest_main",
],
)
iree_runtime_cc_test(
name = "profile_metrics_test",
srcs = ["profile_metrics_test.cc"],
deps = [
":hal",
"//runtime/src/iree/base",
"//runtime/src/iree/testing:gtest",
"//runtime/src/iree/testing:gtest_main",
],
)
iree_runtime_cc_test(
name = "string_util_test",
srcs = ["string_util_test.cc"],
deps = [
":hal",
"//runtime/src/iree/base",
"//runtime/src/iree/base/internal:span",
"//runtime/src/iree/testing:gtest",
"//runtime/src/iree/testing:gtest_main",
],
)
iree_runtime_cc_test(
name = "buffer_view_util_test",
srcs = ["buffer_view_util_test.cc"],
deps = [
":hal",
"//runtime/src/iree/base",
"//runtime/src/iree/testing:gtest",
"//runtime/src/iree/testing:gtest_main",
],
)
iree_runtime_cc_test(
name = "pool_test",
srcs = ["pool_test.cc"],
deps = [
":hal",
"//runtime/src/iree/async",
"//runtime/src/iree/async:platform",
"//runtime/src/iree/base",
"//runtime/src/iree/testing:gtest",
"//runtime/src/iree/testing:gtest_main",
],
)
iree_runtime_cc_test(
name = "topology_test",
srcs = ["topology_test.cc"],
deps = [
":hal",
"//runtime/src/iree/base",
"//runtime/src/iree/testing:gtest",
"//runtime/src/iree/testing:gtest_main",
],
)
iree_runtime_cc_test(
name = "topology_builder_test",
srcs = ["topology_builder_test.cc"],
deps = [
":hal",
"//runtime/src/iree/base",
"//runtime/src/iree/testing:gtest",
"//runtime/src/iree/testing:gtest_main",
],
)
iree_runtime_cc_test(
name = "device_group_test",
srcs = ["device_group_test.cc"],
deps = [
":hal",
"//runtime/src/iree/async",
"//runtime/src/iree/base",
"//runtime/src/iree/hal/testing:mock_device",
"//runtime/src/iree/testing:gtest",
"//runtime/src/iree/testing:gtest_main",
],
)