| # 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", |
| ], |
| ) |