load("//itex:itex.bzl", "itex_xpu_library")

package(default_visibility = ["//visibility:public"])

cc_library(
    name = "gpu_compiler",
    srcs = ["gpu_compiler.cc"],
    hdrs = [
        "gpu_compiler.h",
    ],
    deps = [
        ":alias_passthrough_params",
        ":all_reduce_blueconnect",
        # ":fusion_bitcast_lift",
        ":fusion_merger",
        ":gemm_broadcast_folding_rewriter",
        ":gemm_rewriter",
        ":gpu_constants",
        ":gpu_conv_rewriter",
        ":gpu_device_info",
        ":gpu_executable",
        ":gpu_hlo_schedule",
        ":gpu_layout_assignment",
        ":gpu_reduce_scatter_creator",
        ":gpu_sanitize_constant_names",
        ":gpu_scatter_expander",
        ":horizontal_input_fusion",
        ":horizontal_loop_fusion",
        ":instruction_fusion",
        ":ir_emission_utils",
        ":ir_emitter",
        ":launch_dimensions",
        ":multi_output_fusion",
        ":reduction_degenerate_dim_remover",
        ":reduction_dimension_grouper",
        ":reduction_layout_normalizer",
        ":reduction_splitter",
        ":runtime_intrinsics",
        ":scatter_slice_simplifier",
        ":target_constants",
        ":tree_reduction_rewriter",
        ":triangular_solve_rewriter",
        ":variadic_op_splitter",
        "//itex/core/compiler/mlir:name_utils",
        "//itex/core/compiler/mlir/hlo:itex_gpu_passes",
        "//itex/core/compiler/mlir/xla:hlo_utils",
        "//itex/core/compiler/mlir/xla:mhlo_to_lhlo_with_xla",
        "//itex/core/compiler/mlir/xla:type_to_shape",
        "//itex/core/compiler/xla:protobuf_util",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:types",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:algebraic_simplifier",
        "//itex/core/compiler/xla/service:all_gather_broadcast_reorder",
        "//itex/core/compiler/xla/service:all_gather_combiner",
        # "//itex/core/compiler/xla/service:all_gather_decomposer",
        "//itex/core/compiler/xla/service:all_reduce_combiner",
        "//itex/core/compiler/xla/service:all_reduce_contiguous",
        "//itex/core/compiler/xla/service:all_reduce_folder",
        "//itex/core/compiler/xla/service:all_reduce_reassociate",
        "//itex/core/compiler/xla/service:all_to_all_decomposer",
        "//itex/core/compiler/xla/service:async_collective_creator",
        "//itex/core/compiler/xla/service:batchnorm_expander",
        "//itex/core/compiler/xla/service:bfloat16_normalization",
        "//itex/core/compiler/xla/service:bitcast_dtypes_expander",
        # "//itex/core/compiler/xla/service:buffer_assignment",
        # "//itex/core/compiler/xla/service:call_inliner",
        "//itex/core/compiler/xla/service:collectives_schedule_linearizer",
        "//itex/core/compiler/xla/service:optimization_barrier_expander",
        "//itex/core/compiler/xla/service:comparison_expander",
        "//itex/core/compiler/xla/service:conditional_canonicalizer",
        "//itex/core/compiler/xla/service:conditional_simplifier",
        "//itex/core/compiler/xla/service:convert_mover",
        "//itex/core/compiler/xla/service:convolution_4d_expander",
        "//itex/core/compiler/xla/service:copy_insertion",
        "//itex/core/compiler/xla/service:dot_decomposer",
        "//itex/core/compiler/xla/service:dot_merger",
        "//itex/core/compiler/xla/service:dump",
        "//itex/core/compiler/xla/service:dynamic_dimension_simplifier",
        "//itex/core/compiler/xla/service:dynamic_index_splitter",
        "//itex/core/compiler/xla/service:dynamic_padder",
        "//itex/core/compiler/xla/service:eigh_expander",
        # "//itex/core/compiler/xla/service:executable",
        "//itex/core/compiler/xla/service:flatten_call_graph",
        "//itex/core/compiler/xla/service:gather_expander",
        "//itex/core/compiler/xla/service:gather_simplifier",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_constant_folding",
        "//itex/core/compiler/xla/service:hlo_cse",
        "//itex/core/compiler/xla/service:hlo_dce",
        "//itex/core/compiler/xla/service:hlo_parser",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service:hlo_pass_pipeline",
        "//itex/core/compiler/xla/service:llvm_compiler",
        "//itex/core/compiler/xla/service:logistic_expander",
        "//itex/core/compiler/xla/service:loop_schedule_linearizer",
        "//itex/core/compiler/xla/service:operand_upcaster",
        "//itex/core/compiler/xla/service:qr_expander",
        "//itex/core/compiler/xla/service:real_imag_expander",
        "//itex/core/compiler/xla/service:reduce_scatter_combiner",
        "//itex/core/compiler/xla/service:reshape_mover",
        "//itex/core/compiler/xla/service:result_caster",
        "//itex/core/compiler/xla/service:rng_bit_generator_expander",
        "//itex/core/compiler/xla/service:rng_expander",
        "//itex/core/compiler/xla/service:scatter_expander",
        "//itex/core/compiler/xla/service:scatter_simplifier",
        "//itex/core/compiler/xla/service:sharding_propagation",
        "//itex/core/compiler/xla/service:sharding_remover",
        "//itex/core/compiler/xla/service:simplify_fp_conversions",
        # "//itex/core/compiler/xla/service:slice_sinker",
        # "//itex/core/compiler/xla/service:slow_operation_alarm",
        "//itex/core/compiler/xla/service:sort_simplifier",
        "//itex/core/compiler/xla/service:stable_sort_expander",
        "//itex/core/compiler/xla/service:transpose_folding",
        "//itex/core/compiler/xla/service:tuple_simplifier",
        "//itex/core/compiler/xla/service:while_loop_constant_sinking",
        "//itex/core/compiler/xla/service:while_loop_simplifier",
        "//itex/core/compiler/xla/service:while_loop_trip_count_annotator",
        "//itex/core/compiler/xla/service:zero_sized_hlo_elimination",
        "//itex/core/compiler/xla/service/spmd:stateful_rng_spmd_partitioner",
        "//itex/core/compiler/xla/service/llvm_ir:llvm_util",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/types:variant",
        "@llvm-project//llvm:AsmParser",
        "@llvm-project//llvm:BitReader",
        "@llvm-project//llvm:BitWriter",
        "@llvm-project//llvm:Core",
        "@llvm-project//llvm:TransformUtils",
        "@llvm-project//mlir:AllPassesAndDialects",
        "@llvm-project//mlir:ArithDialect",
        "@llvm-project//mlir:GPUTransforms",
        "@llvm-project//mlir:IR",
        "@llvm-project//mlir:Pass",
        "@llvm-project//mlir:Transforms",
        "@llvm_spir//:llvm_spir_translator",
        # "@mlir-hlo//:gpu_passes",
    ],
)

cc_library(
    name = "gpu_transfer_manager",
    srcs = ["gpu_transfer_manager_internal.cc"],
    hdrs = ["gpu_transfer_manager.h"],
    deps = [
        ":gpu_device_info",
        ":io_feed_manager",
        ":launch_dimensions",
        ":stream_executor_util",
        ":target_constants",
        "//itex/core/compiler/xla:literal",
        "//itex/core/compiler/xla:literal_util",
        "//itex/core/compiler/xla:shape_tree",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:types",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:generic_transfer_manager",
        "//itex/core/compiler/xla/service:transfer_manager",
        "//protos:tf_protos_all_cc",
        "@com_google_absl//absl/memory",
        "@llvm-project//llvm:Core",
    ],
)

cc_library(
    name = "spir_compiler",
    srcs = [
        "spir_compiler.cc",
    ],
    hdrs = [
        "spir_compiler.h",
    ],
    deps = [
        ":cusolver_rewriter",
        ":gpu_compiler",
        ":gpu_conv_padding_legalization",
        ":gpu_conv_rewriter",
        ":ir_emission_utils",
        ":onednn_fused_conv_rewriter",
        ":target_constants",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:types",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:dump",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service/gpu/llvm_gpu_backend",
        "//itex/core/compiler/xla/service/llvm_ir:llvm_util",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/base",
        "@com_google_absl//absl/container:node_hash_map",
        "@com_google_absl//absl/types:optional",
        "@llvm-project//llvm:IRReader",
        "@llvm-project//llvm:Support",
    ],
)

cc_library(
    name = "onednn_fused_conv_rewriter",
    srcs = ["onednn_fused_conv_rewriter.cc"],
    hdrs = ["onednn_fused_conv_rewriter.h"],
    deps = [
        #":backend_configs_cc",
        ":mkl",
        "//itex/core/compiler/xla:comparison_util",
        "//itex/core/compiler/xla:literal_util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_creation_utils",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service:pattern_matcher",
        "//itex/core/utils:common_utils",
    ],
)

cc_library(
    name = "gpu_conv_padding_legalization",
    srcs = ["gpu_conv_padding_legalization.cc"],
    hdrs = ["gpu_conv_padding_legalization.h"],
    deps = [
        ":mkl",
        "//itex/core/compiler/xla:literal",
        "//itex/core/compiler/xla:literal_util",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla:window_util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_creation_utils",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service:shape_inference",
        "//protos:tf_protos_all_cc",
        "@com_google_absl//absl/memory",
    ],
)

cc_library(
    name = "gpu_constants",
    srcs = ["gpu_constants.cc"],
    hdrs = ["gpu_constants.h"],
    deps = [
        "//itex/core/compiler/xla:types",
    ],
)

cc_library(
    name = "gpu_executable_run_options",
    srcs = ["gpu_executable_run_options.cc"],
    hdrs = ["gpu_executable_run_options.h"],
    deps = [
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:types",
        "//itex/core/compiler/xla/service:global_device_id",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/types:optional",
    ],
)

cc_library(
    name = "launch_dimensions",
    srcs = [
        "launch_dimensions.cc",
    ],
    hdrs = [
        "launch_dimensions.h",
    ],
    deps = [
        ":gpu_device_info",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/utils:common_utils",
    ],
)

cc_library(
    name = "custom_call_thunk",
    srcs = ["custom_call_thunk.cc"],
    hdrs = ["custom_call_thunk.h"],
    deps = [
        ":buffer_allocations",
        ":thunk",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:buffer_assignment",
        "//itex/core/compiler/xla/service:custom_call_status_internal",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/strings:str_format",
    ],
)

cc_library(
    name = "gpu_device_info",
    hdrs = ["gpu_device_info.h"],
)

cc_library(
    name = "target_constants",
    hdrs = ["target_constants.h"],
)

cc_library(
    name = "target_util",
    srcs = ["target_util.cc"],
    hdrs = ["target_util.h"],
    deps = [
        "//itex/core/compiler/xla/service/llvm_ir:llvm_type_conversion_util",
        "//itex/core/compiler/xla/service/llvm_ir:llvm_util",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/types:span",
        "@llvm-project//llvm:Core",
        "@llvm-project//llvm:Support",
    ],
)

cc_library(
    name = "stream_assignment",
    srcs = ["stream_assignment.cc"],
    hdrs = ["stream_assignment.h"],
    deps = [
        ":ir_emission_utils",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_reachability",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/memory",
    ],
)

cc_library(
    name = "hlo_to_ir_bindings",
    srcs = ["hlo_to_ir_bindings.cc"],
    hdrs = ["hlo_to_ir_bindings.h"],
    deps = [
        ":buffer_allocations",
        ":ir_emission_utils",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service/llvm_ir:buffer_assignment_util",
        "//itex/core/compiler/xla/service/llvm_ir:ir_array",
        "//itex/core/compiler/xla/service/llvm_ir:llvm_util",
        "//itex/core/compiler/xla/service/llvm_ir:tuple_ops",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/types:span",
        "@llvm-project//llvm:Core",
    ],
)

cc_library(
    name = "ir_emitter",
    srcs = [
        "ir_emitter.cc",
        "ir_emitter_nested.cc",
        "ir_emitter_unnested.cc",
    ],
    hdrs = [
        "ir_emitter.h",
        "ir_emitter_context.h",
        "ir_emitter_nested.h",
        "ir_emitter_unnested.h",
        "kernel_mapping_scheme.h",
    ],
    deps = [
        ":buffer_allocations",
        ":elemental_ir_emitter",
        # ":gpu_asm_opts_util",
        ":gpu_constants",
        ":gpu_conv_runner",
        ":gpu_executable",
        ":hlo_to_ir_bindings",
        ":ir_emission_utils",
        ":launch_dimensions",
        ":nccl_collective_thunks",
        ":parallel_loop_emitter",
        ":target_util",
        ":thunk",
        "//itex/core/compiler/mlir:name_utils",
        "@mlir-hlo//:mlir_hlo",
        "@mlir-hlo//:lhlo",
        "@mlir-hlo//:lhlo_gpu",
        # "//itex/core/compiler/mlir/xla:attribute_exporter",
        "//itex/core/compiler/mlir/xla:hlo_module_importer",
        "//itex/core/compiler/mlir/xla:hlo_utils",
        "//itex/core/compiler/mlir/xla:mhlo_to_lhlo_with_xla",
        "//itex/core/compiler/mlir/xla:mlir_hlo_to_hlo",
        "//itex/core/compiler/mlir/xla:type_to_shape",
        "//itex/core/compiler/xla:literal",
        "//itex/core/compiler/xla:permutation_util",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:types",
        "//itex/core/compiler/xla:union_find",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla:window_util",
        "//itex/core/compiler/xla/service:buffer_assignment",
        # "//itex/core/compiler/xla/service:collective_ops_utils",
        "//itex/core/compiler/xla/service:custom_call_status",
        "//itex/core/compiler/xla/service:custom_call_target_registry",
        "//itex/core/compiler/xla/service:elemental_ir_emitter",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_execution_profile",
        "//itex/core/compiler/xla/service:name_uniquer",
        "//itex/core/compiler/xla/service:pattern_matcher",
        "//itex/core/compiler/xla/service:shape_inference",
        # "//itex/core/compiler/xla/service:while_loop_analysis",
        "//itex/core/compiler/xla/service/llvm_ir:buffer_assignment_util",
        "//itex/core/compiler/xla/service/llvm_ir:dynamic_update_slice_util",
        "//itex/core/compiler/xla/service/llvm_ir:fused_ir_emitter",
        "//itex/core/compiler/xla/service/llvm_ir:ir_array",
        "//itex/core/compiler/xla/service/llvm_ir:ir_builder_mixin",
        "//itex/core/compiler/xla/service/llvm_ir:kernel_support_library",
        "//itex/core/compiler/xla/service/llvm_ir:llvm_loop",
        "//itex/core/compiler/xla/service/llvm_ir:llvm_type_conversion_util",
        "//itex/core/compiler/xla/service/llvm_ir:llvm_util",
        "//itex/core/compiler/xla/service/llvm_ir:loop_emitter",
        "//itex/core/compiler/xla/service/llvm_ir:sort_util",
        "//itex/core/compiler/xla/service/llvm_ir:tuple_ops",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/container:inlined_vector",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/strings:str_format",
        "@com_google_absl//absl/types:optional",
        "@com_google_absl//absl/types:span",
        "@llvm-project//llvm:Core",
        "@llvm-project//llvm:Support",
        "@llvm-project//mlir:IR",
        "@llvm-project//mlir:FuncDialect",
        "@llvm-project//mlir:GPUDialect",
        # "@mlir-extensions//:mlir_lib",
    ],
)

cc_library(
    name = "parallel_loop_emitter",
    srcs = ["parallel_loop_emitter.cc"],
    hdrs = ["parallel_loop_emitter.h"],
    deps = [
        ":launch_dimensions",
        ":target_util",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla/service/llvm_ir:ir_array",
        "//itex/core/compiler/xla/service/llvm_ir:kernel_support_library",
        "//itex/core/compiler/xla/service/llvm_ir:llvm_loop",
        "//itex/core/compiler/xla/service/llvm_ir:llvm_util",
        "//itex/core/compiler/xla/service/llvm_ir:loop_emitter",
        "//itex/core/utils:common_utils",
        "@llvm-project//llvm:Core",
    ],
)

cc_library(
    name = "elemental_ir_emitter",
    srcs = ["elemental_ir_emitter.cc"],
    hdrs = ["elemental_ir_emitter.h"],
    deps = [
        # ":backend_configs_cc",
        ":target_util",
        "//itex/core/compiler/xla:literal",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:types",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla:window_util",
        "//itex/core/compiler/xla/service:elemental_ir_emitter",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_module_config",
        "//itex/core/compiler/xla/service/llvm_ir:ir_array",
        "//itex/core/compiler/xla/service/llvm_ir:llvm_loop",
        "//itex/core/compiler/xla/service/llvm_ir:llvm_util",
        "//itex/core/compiler/xla/service/llvm_ir:loop_emitter",
        "//itex/core/compiler/xla/service/llvm_ir:math_ops",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/types:span",
        "@llvm-project//llvm:Core",
        "@llvm-project//llvm:Support",
    ],
)

cc_library(
    name = "buffer_allocations",
    srcs = ["buffer_allocations.cc"],
    hdrs = ["buffer_allocations.h"],
    deps = [
        ":gpu_constants",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:types",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:buffer_assignment",
        "//itex/core/compiler/xla/stream_executor:device_memory",
        "//itex/core/compiler/xla/stream_executor:device_memory_allocator",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/strings:str_format",
        "@com_google_absl//absl/types:span",
    ],
)

cc_library(
    name = "thunk",
    srcs = ["thunk.cc"],
    hdrs = ["thunk.h"],
    deps = [
        ":buffer_allocations",
        ":gpu_executable_run_options",
        "//itex/core/compiler/xla:executable_run_options",
        "//itex/core/compiler/xla/service:executable",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/utils:common_utils",
    ],
)

itex_xpu_library(
    name = "nccl_collective_thunks",
    srcs = [
        "nccl_all_gather_thunk.cc",
        "nccl_all_reduce_thunk.cc",
        "nccl_all_to_all_thunk.cc",
        "nccl_collective_permute_thunk.cc",
        "nccl_collective_thunk.cc",
        "nccl_ops.cc",
    ],
    hdrs = [
        "nccl_all_gather_thunk.h",
        "nccl_all_reduce_thunk.h",
        "nccl_all_to_all_thunk.h",
        "nccl_collective_permute_thunk.h",
        "nccl_collective_thunk.h",
        "nccl_ops.h",
    ],
    deps = [
        ":buffer_allocations",
        ":ir_emission_utils",
        ":nccl_utils",
        ":thunk",
        "//itex/core/compiler/mlir/xla:attribute_exporter",
        "//itex/core/compiler/mlir/xla:hlo_utils",
        "//itex/core/compiler/mlir/xla:type_to_shape",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:buffer_assignment",
        "//itex/core/compiler/xla/service:collective_ops_utils",
        "//itex/core/compiler/xla/service:global_device_id",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/base",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/strings:str_format",
        "@com_google_absl//absl/synchronization",
        "@com_google_absl//absl/types:optional",
        "@llvm-project//mlir:IR",
        "@mlir-hlo//:lhlo",
        "@mlir-hlo//:lhlo_gpu",
    ],
)

itex_xpu_library(
    name = "nccl_utils",
    srcs = ["nccl_utils.cc"],
    hdrs = ["nccl_utils.h"],
    deps = [
        ":gpu_executable_run_options",
        "//itex/core/compiler/xla:debug_options_flags",
        "//itex/core/compiler/xla:status",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla/service:collective_ops_utils",
        "//itex/core/compiler/xla/service:global_device_id",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/strings:str_format",
        "@com_google_absl//absl/synchronization",
        "@com_google_absl//absl/time",
    ],
)

itex_xpu_library(
    name = "gpu_executable",
    srcs = [
        # "bef_thunk.cc",
        "conditional_thunk.cc",
        "convolution_thunk.cc",
        "copy_thunk.cc",
        "fft_thunk.cc",
        "for_thunk.cc",
        "gpu_executable.cc",
        "infeed_thunk.cc",
        "kernel_thunk.cc",
        "memset_thunk.cc",
        "outfeed_thunk.cc",
        "replica_id_thunk.cc",
        "sequential_thunk.cc",
        "triangular_solve_thunk.cc",
        "thunk_schedule.cc",
        "while_thunk.cc",
        "cholesky_thunk.cc",
    ],
    hdrs = [
        # "bef_thunk.h",
        "conditional_thunk.h",
        "convolution_thunk.h",
        "copy_thunk.h",
        "custom_call_thunk.h",
        "fft_thunk.h",
        "for_thunk.h",
        "gemm_thunk.h",
        "gpu_executable.h",
        "infeed_thunk.h",
        "kernel_thunk.h",
        "memset_thunk.h",
        "outfeed_thunk.h",
        "replica_id_thunk.h",
        "sequential_thunk.h",
        "triangular_solve_thunk.h",
        "thunk_schedule.h",
        "while_thunk.h",
        "cholesky_thunk.h",
    ],
    deps = [
        # ":backend_configs_cc",
        ":buffer_allocations",
        # ":cusolver_context",
        ":custom_call_thunk",
        ":gemm_thunk",
        # ":gpu_asm_opts_util",
        ":gpu_constants",
        ":gpu_conv_runner",
        ":gpu_executable_run_options",
        # ":gpu_types",
        ":io_feed_manager",
        ":ir_emission_utils",
        ":matmul_utils",
        ":nccl_collective_thunks",
        ":launch_dimensions",
        ":mkl",
        ":stream_assignment",
        ":stream_executor_util",
        ":thunk",
        "@com_google_absl//absl/base",
        "@com_google_absl//absl/cleanup",
        "@com_google_absl//absl/synchronization",
        "@llvm-project//mlir:IR",
        "@mlir-hlo//:lhlo_gpu",
        # "//itex/core/compiler/xla/service:hlo_execution_profile",
        "//itex/core/compiler/xla:array2d",
        "//itex/core/compiler/xla:literal",
        "//itex/core/compiler/xla:refcounting_hash_map",
        "//itex/core/compiler/xla:shape_tree",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:status",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:types",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:buffer_assignment",
        # "//itex/core/compiler/xla/service:custom_call_status_internal",
        "//itex/core/compiler/xla/service:executable",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_dataflow_analysis",
        "//itex/core/compiler/xla/service:hlo_parser",
        "//itex/core/compiler/xla/service:logical_buffer",
        # "//itex/core/compiler/xla/service:shaped_buffer",
        # "//itex/core/compiler/xla/service:transfer_manager",
        "//itex/core/compiler/xla/service:xla_debug_info_manager",
        "//itex/core/compiler/xla/service/llvm_ir:buffer_assignment_util",
        "//itex/core/compiler/xla/stream_executor/sycl:sycl_executor",
        "//itex/core/compiler/xla/stream_executor:scratch_allocator",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/strings:str_format",
        "@com_google_absl//absl/types:optional",
        "@com_google_absl//absl/types:span",
        "@com_google_absl//absl/types:variant",
    ],
)

cc_library(
    name = "ir_emission_utils",
    srcs = ["ir_emission_utils.cc"],
    hdrs = ["ir_emission_utils.h"],
    deps = [
        ":target_util",
        "//itex/core/compiler/mlir/xla:hlo_utils",
        "//itex/core/compiler/mlir/xla:type_to_shape",
        "//itex/core/compiler/xla/service:buffer_assignment",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_parser",
        "//itex/core/compiler/xla/service/llvm_ir:llvm_type_conversion_util",
        "@llvm-project//llvm:Core",
        "@mlir-hlo//:lhlo",
        "@mlir-hlo//:mlir_hlo",
    ],
)

cc_library(
    name = "gpu_hlo_schedule",
    srcs = ["gpu_hlo_schedule.cc"],
    hdrs = ["gpu_hlo_schedule.h"],
    deps = [
        ":stream_assignment",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:types",
        "//itex/core/compiler/xla/service:buffer_value",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_memory_scheduler",
        "//itex/core/compiler/xla/service:hlo_ordering",
        "//itex/core/compiler/xla/service:hlo_reachability",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/memory",
    ],
)

cc_library(
    name = "stream_executor_util",
    srcs = ["stream_executor_util.cc"],
    hdrs = ["stream_executor_util.h"],
    # copts = tf_copts(),
    deps = [
        ":launch_dimensions",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:types",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_module_config",
        "//itex/core/compiler/xla/stream_executor:kernel_spec",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/memory",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/types:span",
    ],
)

itex_xpu_library(
    name = "runtime_intrinsics",
    srcs = ["runtime_intrinsics.cc"],
    hdrs = ["runtime_intrinsics.h"],
    deps = [
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:status",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:custom_call_status",
        "//itex/core/compiler/xla/service:custom_call_target_registry",
        "@com_google_absl//absl/cleanup",
    ],
    alwayslink = 1,
)

cc_library(
    name = "alias_passthrough_params",
    srcs = ["alias_passthrough_params.cc"],
    hdrs = ["alias_passthrough_params.h"],
    deps = [
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_pass",
    ],
)

cc_library(
    name = "all_reduce_blueconnect",
    srcs = ["all_reduce_blueconnect.cc"],
    hdrs = ["all_reduce_blueconnect.h"],
    deps = [
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_creation_utils",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service:hlo_query",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/container:btree",
        "@com_google_absl//absl/types:optional",
        "@com_google_absl//absl/types:span",
    ],
)

cc_library(
    name = "fusion_merger",
    srcs = ["fusion_merger.cc"],
    hdrs = ["fusion_merger.h"],
    deps = [
        ":gpu_fusible",
        ":instruction_fusion",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_cost_analysis",
        "//itex/core/compiler/xla/service:hlo_graph_dumper",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service/llvm_ir:fused_ir_emitter",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/strings",
    ],
)

cc_library(
    name = "gemm_broadcast_folding_rewriter",
    srcs = ["gemm_broadcast_folding_rewriter.cc"],
    hdrs = ["gemm_broadcast_folding_rewriter.h"],
    deps = [
        ":mkl",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service:pattern_matcher",
        "//protos:tf_protos_all_cc",
        "@com_google_absl//absl/types:optional",
    ],
)

cc_library(
    name = "gemm_rewriter",
    srcs = ["gemm_rewriter.cc"],
    hdrs = ["gemm_rewriter.h"],
    deps = [
        ":ir_emission_utils",
        ":mkl",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service:pattern_matcher",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/types:optional",
    ],
)

cc_library(
    name = "gemm_thunk",
    srcs = ["gemm_thunk.cc"],
    hdrs = ["gemm_thunk.h"],
    deps = [
        ":buffer_allocations",
        ":matmul_utils",
        ":mkl",
        ":thunk",
        "//itex/core/compiler/xla:comparison_util",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:types",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:buffer_assignment",
        "//itex/core/compiler/xla/stream_executor:device_memory",
        "//itex/core/compiler/xla/stream_executor:scratch_allocator",
        "//itex/core/utils:common_utils",
        "//itex/core/utils/onednn:onednn_util",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/types:optional",
    ],
)

cc_library(
    name = "gpu_fusible",
    srcs = ["gpu_fusible.cc"],
    hdrs = ["gpu_fusible.h"],
    deps = [
        ":ir_emission_utils",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:instruction_fusion",
    ],
)

cc_library(
    name = "gpu_layout_assignment",
    srcs = ["gpu_layout_assignment.cc"],
    hdrs = ["gpu_layout_assignment.h"],
    deps = [
        # ":backend_configs_cc",
        ":mkl",
        ":ir_emission_utils",
        ":stream_executor_util",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:window_util",
        "//itex/core/compiler/xla/service:computation_layout",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:layout_assignment",
        "//itex/core/utils:common_utils",
    ],
)

cc_library(
    name = "gpu_conv_rewriter",
    srcs = ["gpu_conv_rewriter.cc"],
    hdrs = ["gpu_conv_rewriter.h"],
    deps = [
        #":backend_configs_cc",
        #":cublas_cudnn",
        ":mkl",
        "//itex/core/compiler/xla:literal",
        "//itex/core/compiler/xla:permutation_util",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla:window_util",
        #"//itex/core/compiler/xla:xla_data_proto_cc",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/utils:common_utils",
    ],
)

cc_library(
    name = "cusolver_rewriter",
    srcs = ["cusolver_rewriter.cc"],
    hdrs = ["cusolver_rewriter.h"],
    deps = [
        ":ir_emission_utils",
        ":mkl",
        "//itex/core/compiler/xla:literal",
        "//itex/core/compiler/xla:literal_util",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/stream_executor:device_memory_allocator",
        "//itex/core/utils:common_utils",
        "//third_party/build_option/dpcpp:eigen_itex_gpu_header",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/types:optional",
    ],
)

cc_library(
    name = "gpu_reduce_scatter_creator",
    srcs = ["gpu_reduce_scatter_creator.cc"],
    hdrs = ["gpu_reduce_scatter_creator.h"],
    deps = [
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service:hlo_query",
        "//itex/core/compiler/xla/service:reduce_scatter_utils",
    ],
)

cc_library(
    name = "gpu_sanitize_constant_names",
    srcs = ["gpu_sanitize_constant_names.cc"],
    hdrs = ["gpu_sanitize_constant_names.h"],
    deps = [
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service/llvm_ir:buffer_assignment_util",
        "//itex/core/utils:common_utils",
    ],
)

cc_library(
    name = "gpu_scatter_expander",
    srcs = ["gpu_scatter_expander.cc"],
    hdrs = ["gpu_scatter_expander.h"],
    deps = [
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:scatter_expander",
        "@com_google_absl//absl/algorithm:container",
    ],
)

cc_library(
    name = "horizontal_loop_fusion",
    srcs = ["horizontal_loop_fusion.cc"],
    hdrs = ["horizontal_loop_fusion.h"],
    deps = [
        ":gpu_fusible",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_creation_utils",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/types:span",
    ],
)

cc_library(
    name = "horizontal_input_fusion",
    srcs = ["horizontal_input_fusion.cc"],
    hdrs = ["horizontal_input_fusion.h"],
    deps = [
        ":gpu_fusible",
        ":ir_emission_utils",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_creation_utils",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/types:span",
    ],
)

cc_library(
    name = "instruction_fusion",
    srcs = ["instruction_fusion.cc"],
    hdrs = ["instruction_fusion.h"],
    deps = [
        ":gpu_fusible",
        ":ir_emission_utils",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla/service:fusion_node_indexing_evaluation",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_query",
        "//itex/core/compiler/xla/service:instruction_fusion",
        "//itex/core/compiler/xla/service:pattern_matcher",
        "//itex/core/compiler/xla/service/llvm_ir:fused_ir_emitter",
        "//protos:tf_protos_all_cc",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
    ],
)

cc_library(
    name = "matmul_utils",
    srcs = ["matmul_utils.cc"],
    hdrs = ["matmul_utils.h"],
    deps = [
        ":ir_emission_utils",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:hlo",
        "//protos:tf_protos_all_cc",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/types:span",
        "@llvm-project//mlir:IR",
        "@mlir-hlo//:lhlo_gpu",
        "@mlir-hlo//:mlir_hlo",
    ],
)

cc_library(
    name = "multi_output_fusion",
    srcs = ["multi_output_fusion.cc"],
    hdrs = ["multi_output_fusion.h"],
    deps = [
        ":gpu_fusible",
        ":instruction_fusion",
        ":ir_emission_utils",
        "//itex/core/compiler/xla:debug_options_flags",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_graph_dumper",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service:hlo_reachability",
        "//itex/core/compiler/xla/service/llvm_ir:fused_ir_emitter",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/container:flat_hash_map",
        "@com_google_absl//absl/container:flat_hash_set",
        "@com_google_absl//absl/strings",
    ],
)

cc_library(
    name = "mkl",
    srcs = ["mkl.cc"],
    hdrs = ["mkl.h"],
    deps = [
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/utils:common_utils",
    ],
)

cc_library(
    name = "reduction_degenerate_dim_remover",
    srcs = ["reduction_degenerate_dim_remover.cc"],
    hdrs = ["reduction_degenerate_dim_remover.h"],
    deps = [
        ":ir_emission_utils",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service:pattern_matcher",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/types:optional",
    ],
)

cc_library(
    name = "reduction_dimension_grouper",
    srcs = ["reduction_dimension_grouper.cc"],
    hdrs = ["reduction_dimension_grouper.h"],
    deps = [
        ":ir_emission_utils",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service:pattern_matcher",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/types:optional",
    ],
)

cc_library(
    name = "reduction_splitter",
    srcs = ["reduction_splitter.cc"],
    hdrs = ["reduction_splitter.h"],
    deps = [
        ":ir_emission_utils",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_pass",
    ],
)

cc_library(
    name = "reduction_layout_normalizer",
    srcs = ["reduction_layout_normalizer.cc"],
    hdrs = ["reduction_layout_normalizer.h"],
    deps = [
        ":ir_emission_utils",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service:pattern_matcher",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/types:optional",
    ],
)

cc_library(
    name = "scatter_slice_simplifier",
    srcs = ["scatter_slice_simplifier.cc"],
    hdrs = ["scatter_slice_simplifier.h"],
    deps = [
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_creation_utils",
        "//itex/core/compiler/xla/service:hlo_pass",
        "@com_google_absl//absl/algorithm:container",
    ],
)

cc_library(
    name = "tree_reduction_rewriter",
    srcs = ["tree_reduction_rewriter.cc"],
    hdrs = ["tree_reduction_rewriter.h"],
    deps = [
        ":ir_emission_utils",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/client:padding",
        "//itex/core/compiler/xla/service:collective_ops_utils",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/compiler/xla/service:shape_inference",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/algorithm:container",
        "@com_google_absl//absl/strings",
    ],
)

cc_library(
    name = "triangular_solve_rewriter",
    srcs = ["triangular_solve_rewriter.cc"],
    hdrs = ["triangular_solve_rewriter.h"],
    deps = [
        ":mkl",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_creation_utils",
        "//itex/core/compiler/xla/service:hlo_pass",
        "@com_google_absl//absl/strings",
    ],
)

cc_library(
    name = "variadic_op_splitter",
    srcs = ["variadic_op_splitter.cc"],
    hdrs = ["variadic_op_splitter.h"],
    deps = [
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/service:hlo_pass",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/types:span",
    ],
)

cc_library(
    name = "xfeed_queue",
    hdrs = ["xfeed_queue.h"],
    deps = [
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/base:core_headers",
    ],
)

cc_library(
    name = "io_feed_manager",
    srcs = [
        "infeed_manager.cc",
        "outfeed_manager.cc",
        "xla_executor_state.h",
    ],
    hdrs = [
        "infeed_manager.h",
        "outfeed_manager.h",
    ],
    deps = [
        ":xfeed_queue",
        "//itex/core/compiler/xla:literal",
        "//itex/core/compiler/xla:shape_tree",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:types",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/stream_executor/sycl:sycl_executor_header",
        "//itex/core/utils:common_utils",
        "@com_google_absl//absl/base:core_headers",
        "@com_google_absl//absl/memory",
    ],
)

cc_library(
    name = "gpu_conv_runner",
    srcs = ["gpu_conv_runner.cc"],
    hdrs = ["gpu_conv_runner.h"],
    deps = [
        ":stream_executor_util",
        ":thunk",
        "//itex/core/compiler/mlir:name_utils",
        "//itex/core/compiler/mlir/xla:hlo_module_importer",
        "//itex/core/compiler/mlir/xla:hlo_utils",
        "//itex/core/compiler/mlir/xla:mhlo_to_lhlo_with_xla",
        "//itex/core/compiler/mlir/xla:mlir_hlo_to_hlo",
        "//itex/core/compiler/mlir/xla:type_to_shape",
        "//itex/core/compiler/xla:shape_util",
        "//itex/core/compiler/xla:status",
        "//itex/core/compiler/xla:status_macros",
        "//itex/core/compiler/xla:statusor",
        "//itex/core/compiler/xla:types",
        "//itex/core/compiler/xla:util",
        "//itex/core/compiler/xla/service:hlo",
        "//itex/core/compiler/xla/stream_executor:scratch_allocator",
        "//itex/core/utils/onednn:onednn_util",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/types:optional",
        "@mlir-hlo//:lhlo",
        "@mlir-hlo//:lhlo_gpu",
        "@mlir-hlo//:mlir_hlo",
    ],
)
