# 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

# Tools IREE provides for compiling, executing, and benchmarking programs, as
# well as other utilities.
#
# Only binary targets and their associated main files should go in this
# directory. Library targets and header files should be placed in the
# appropriate subtree, e.g. `compiler/src/iree/compiler/Tools/`.
#
# Programs with a dependency on the compiler are not designed to run on device
# platforms (e.g. Android), so they are tagged "hostonly".

load("@rules_cc//cc:defs.bzl", "cc_binary")
load("//build_tools/bazel:build_defs.oss.bzl", "iree_compiler_cc_binary", "iree_runtime_cc_binary")

package(
    default_visibility = ["//visibility:public"],
    features = ["layering_check"],
    licenses = ["notice"],  # Apache 2.0
)

exports_files([
    "iree-profile-render",
    "lit.cfg.py",
])

iree_runtime_cc_binary(
    name = "iree-as-module",
    srcs = ["iree-as-module-main.c"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/io:file_handle",
        "//runtime/src/iree/vm/bytecode/assembler",
    ],
)

iree_runtime_cc_binary(
    name = "iree-benchmark-executable",
    srcs = ["iree-benchmark-executable-main.c"],
    deps = [
        "//runtime/src/iree/async",
        "//runtime/src/iree/async/util:proactor_pool",
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/threading",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/hal",
        "//runtime/src/iree/io:file_handle",
        "//runtime/src/iree/modules/hal:types",
        "//runtime/src/iree/testing:benchmark",
        "//runtime/src/iree/tooling:device_util",
        "//runtime/src/iree/tooling:function_io",
        "//runtime/src/iree/vm",
    ],
)

iree_runtime_cc_binary(
    name = "iree-benchmark-module",
    srcs = ["iree-benchmark-module-main.cc"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/hal",
        "//runtime/src/iree/hal/replay:recorder",
        "//runtime/src/iree/modules/hal:types",
        "//runtime/src/iree/tooling:context_util",
        "//runtime/src/iree/tooling:device_util",
        "//runtime/src/iree/tooling:function_io",
        "//runtime/src/iree/vm",
        "@com_google_benchmark//:benchmark",
    ],
)

iree_runtime_cc_binary(
    name = "iree-check-module",
    testonly = True,
    srcs = ["iree-check-module-main.cc"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/hal",
        "//runtime/src/iree/hal/replay:recorder",
        "//runtime/src/iree/modules/check",
        "//runtime/src/iree/testing:gtest",
        "//runtime/src/iree/tooling:context_util",
        "//runtime/src/iree/tooling:device_util",
        "//runtime/src/iree/vm",
        "//runtime/src/iree/vm/bytecode:module",
    ],
)

iree_runtime_cc_binary(
    name = "iree-convert-parameters",
    srcs = ["iree-convert-parameters-main.c"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/hal",
        "//runtime/src/iree/io:file_handle",
        "//runtime/src/iree/io:parameter_index",
        "//runtime/src/iree/io:scope_map",
        "//runtime/src/iree/io/formats/irpa",
        "//runtime/src/iree/tooling:parameter_util",
    ],
)

iree_runtime_cc_binary(
    name = "iree-cpuinfo",
    srcs = ["iree-cpuinfo.c"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/internal:cpu",
        "//runtime/src/iree/schemas:cpu_data",
    ],
)

iree_runtime_cc_binary(
    name = "iree-create-parameters",
    srcs = ["iree-create-parameters-main.c"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/hal",
        "//runtime/src/iree/io:file_handle",
        "//runtime/src/iree/io:parameter_index",
        "//runtime/src/iree/io:scope_map",
        "//runtime/src/iree/io:stream",
        "//runtime/src/iree/io/formats/irpa",
    ],
)

iree_runtime_cc_binary(
    name = "iree-dump-instruments",
    srcs = ["iree-dump-instruments-main.c"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/internal/flatcc:parsing",
        "//runtime/src/iree/io:file_handle",
        "//runtime/src/iree/schemas/instruments",
        "//runtime/src/iree/schemas/instruments:dispatch_def_c_fbs",
    ],
)

iree_runtime_cc_binary(
    name = "iree-dump-module",
    srcs = ["iree-dump-module-main.c"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/internal/flatcc:debugging",
        "//runtime/src/iree/base/internal/flatcc:parsing",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/io:file_handle",
        "//runtime/src/iree/schemas:bytecode_module_def_c_fbs",
        "//runtime/src/iree/vm",
        "//runtime/src/iree/vm/bytecode:module",
    ],
)

iree_runtime_cc_binary(
    name = "iree-dump-parameters",
    srcs = ["iree-dump-parameters-main.c"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/io:file_handle",
        "//runtime/src/iree/io:parameter_index",
        "//runtime/src/iree/io:scope_map",
        "//runtime/src/iree/tooling:parameter_util",
    ],
)

iree_runtime_cc_binary(
    name = "iree-dump-replay",
    srcs = ["iree-dump-replay-main.c"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/hal/replay:dump",
        "//runtime/src/iree/io:file_handle",
    ],
)

iree_runtime_cc_binary(
    name = "iree-run-replay",
    srcs = ["iree-run-replay-main.c"],
    deps = [
        "//runtime/src/iree/async",
        "//runtime/src/iree/async/util:proactor_pool",
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/hal",
        "//runtime/src/iree/hal/replay:execute",
        "//runtime/src/iree/io:file_handle",
        "//runtime/src/iree/tooling:device_util",
    ],
)

iree_runtime_cc_binary(
    name = "iree-benchmark-replay",
    srcs = ["iree-benchmark-replay-main.cc"],
    deps = [
        "//runtime/src/iree/async",
        "//runtime/src/iree/async/util:proactor_pool",
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/hal",
        "//runtime/src/iree/hal/replay:execute",
        "//runtime/src/iree/io:file_handle",
        "//runtime/src/iree/tooling:device_util",
        "@com_google_benchmark//:benchmark",
    ],
)

iree_runtime_cc_binary(
    name = "iree-encode-parameters",
    srcs = ["iree-encode-parameters-main.c"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/hal",
        "//runtime/src/iree/hal/replay:recorder",
        "//runtime/src/iree/io:file_handle",
        "//runtime/src/iree/io:parameter_index",
        "//runtime/src/iree/io:parameter_index_provider",
        "//runtime/src/iree/io:scope_map",
        "//runtime/src/iree/io:stream",
        "//runtime/src/iree/io/formats/irpa",
        "//runtime/src/iree/modules/hal",
        "//runtime/src/iree/tooling:context_util",
        "//runtime/src/iree/tooling:function_util",
        "//runtime/src/iree/tooling:parameter_util",
        "//runtime/src/iree/vm",
    ],
)

iree_runtime_cc_binary(
    name = "iree-fatelf",
    srcs = ["iree-fatelf.c"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/internal:path",
        "//runtime/src/iree/hal/local/elf:elf_module",
        "//runtime/src/iree/io:file_handle",
    ],
)

iree_compiler_cc_binary(
    name = "iree-opt",
    srcs = ["iree-opt-main.cc"],
    tags = ["hostonly"],
    deps = [
        "//compiler/bindings/c:headers",
        "//compiler/src/iree/compiler/API:Impl",
    ],
)

iree_compiler_cc_binary(
    name = "iree-mlir-lsp-server",
    srcs = ["iree-mlir-lsp-server.cc"],
    deps = [
        "//compiler/bindings/c:headers",
        "//compiler/src/iree/compiler/API:Impl",
    ],
)

# The only place we cross the streams between compiler and runtime. This
# includes a JIT compiler step and uses neither of the iree_*_cc_binary rules,
# but rather directly depends on both the compiler and runtime include rules.
cc_binary(
    name = "iree-run-mlir",
    srcs = ["iree-run-mlir-main.cc"],
    tags = ["hostonly"],
    deps = [
        "//compiler/bindings/c:headers",
        "//compiler/src:defs",
        "//compiler/src/iree/compiler/API:Impl",
        "//runtime/src:runtime_defines",
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/hal",
        "//runtime/src/iree/tooling:context_util",
        "//runtime/src/iree/tooling:device_util",
        "//runtime/src/iree/tooling:run_module",
        "//runtime/src/iree/vm",
    ],
)

iree_runtime_cc_binary(
    name = "iree-run-module",
    srcs = ["iree-run-module-main.c"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/hal",
        "//runtime/src/iree/tooling:context_util",
        "//runtime/src/iree/tooling:run_module",
        "//runtime/src/iree/vm",
    ],
)

iree_runtime_cc_binary(
    name = "iree-profile",
    srcs = ["iree-profile-main.c"],
    defines = select({
        "//runtime/src/iree/hal/drivers:amdgpu_enabled": ["IREE_PROFILE_HAVE_AMDGPU_ATT=1"],
        "//conditions:default": ["IREE_PROFILE_HAVE_AMDGPU_ATT=0"],
    }),
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/tooling/profile:commands",
        "//runtime/src/iree/tooling/profile:help",
    ] + select({
        "//runtime/src/iree/hal/drivers:amdgpu_enabled": ["//runtime/src/iree/tooling/profile/att"],
        "//conditions:default": [],
    }),
)

iree_compiler_cc_binary(
    name = "iree-tblgen",
    srcs = [
        "iree-tblgen.cpp",
        "//compiler/src/iree/compiler/Dialect/VM/Tools:GenSrcs",
    ],
    tags = ["hostonly"],
    deps = [
        "@llvm-project//llvm:Support",
        "@llvm-project//llvm:TableGen",
        "@llvm-project//mlir:MlirTableGenMain",
        "@llvm-project//mlir:Support",
        "@llvm-project//mlir:TableGen",
    ],
)

iree_runtime_cc_binary(
    name = "iree-tokenize",
    srcs = ["iree-tokenize-main.c"],
    deps = [
        "//runtime/src/iree/base",
        "//runtime/src/iree/base/internal:json",
        "//runtime/src/iree/base/tooling:flags",
        "//runtime/src/iree/io:file_handle",
        "//runtime/src/iree/tokenizer",
        "//runtime/src/iree/tokenizer/format/huggingface:tokenizer_json",
        "//runtime/src/iree/tokenizer/format/tiktoken",
        "//runtime/src/iree/tokenizer/vocab",
    ],
)

iree_compiler_cc_binary(
    name = "iree-compile",
    srcs = ["iree-compile-main.cc"],
    tags = ["hostonly"],
    deps = [
        "//compiler/bindings/c:headers",
        "//compiler/src/iree/compiler/API:Impl",
    ],
)

iree_compiler_cc_binary(
    name = "iree-link",
    srcs = ["iree-link-main.cc"],
    tags = ["hostonly"],
    deps = [
        "//compiler/bindings/c:headers",
        "//compiler/src/iree/compiler/API:Impl",
    ],
)

iree_compiler_cc_binary(
    name = "iree-reduce",
    srcs = ["iree-reduce.cc"],
    tags = ["hostonly"],
    deps = [
        "//compiler/bindings/c:headers",
        "//compiler/src/iree/compiler/API:Impl",
    ],
)
