diff --git a/experimental/rocm/CMakeLists.txt b/experimental/rocm/CMakeLists.txt
index db57bd3..185bd5c 100644
--- a/experimental/rocm/CMakeLists.txt
+++ b/experimental/rocm/CMakeLists.txt
@@ -51,8 +51,6 @@
     iree::base::internal
     iree::base::internal::flatcc
     iree::base::internal::synchronization
-    iree::base::logging
-    iree::base::status
     iree::base::tracing
     iree::hal
     iree::schemas::rocm_executable_def_c_fbs
@@ -88,6 +86,7 @@
     "dynamic_symbols_test.cc"
   DEPS
     ::dynamic_symbols
+    iree::base
     iree::testing::gtest
     iree::testing::gtest_main
   LABELS
diff --git a/experimental/rocm/api.h b/experimental/rocm/api.h
index 638fedd..68fa191 100644
--- a/experimental/rocm/api.h
+++ b/experimental/rocm/api.h
@@ -21,7 +21,7 @@
 //===----------------------------------------------------------------------===//
 
 // ROCM driver creation options.
-typedef struct {
+typedef struct iree_hal_rocm_driver_options_t {
   // Index of the default ROCM device to use within the list of available
   // devices.
   int default_device_index;
diff --git a/experimental/rocm/context_wrapper.h b/experimental/rocm/context_wrapper.h
index 514207d..2c51424 100644
--- a/experimental/rocm/context_wrapper.h
+++ b/experimental/rocm/context_wrapper.h
@@ -13,7 +13,7 @@
 
 // Structure to wrap all objects constant within a context. This makes it
 // simpler to pass it to the different objects and saves memory.
-typedef struct {
+typedef struct iree_hal_rocm_context_wrapper_t {
   hipCtx_t rocm_context;
   iree_allocator_t host_allocator;
   iree_hal_rocm_dynamic_symbols_t *syms;
diff --git a/experimental/rocm/descriptor_set_layout.c b/experimental/rocm/descriptor_set_layout.c
index 0ca1cc8..69fb4af 100644
--- a/experimental/rocm/descriptor_set_layout.c
+++ b/experimental/rocm/descriptor_set_layout.c
@@ -6,10 +6,12 @@
 
 #include "experimental/rocm/descriptor_set_layout.h"
 
-#include "experimental/rocm/status_util.h"
+#include <stddef.h>
+
+#include "iree/base/api.h"
 #include "iree/base/tracing.h"
 
-typedef struct {
+typedef struct iree_hal_rocm_descriptor_set_layout_t {
   iree_hal_resource_t resource;
   iree_hal_rocm_context_wrapper_t *context;
 } iree_hal_rocm_descriptor_set_layout_t;
diff --git a/experimental/rocm/descriptor_set_layout.h b/experimental/rocm/descriptor_set_layout.h
index 933c9c6..fb07b76 100644
--- a/experimental/rocm/descriptor_set_layout.h
+++ b/experimental/rocm/descriptor_set_layout.h
@@ -8,6 +8,7 @@
 #define IREE_HAL_ROCM_DESCRIPTOR_SET_LAYOUT_H_
 
 #include "experimental/rocm/context_wrapper.h"
+#include "iree/base/api.h"
 #include "iree/hal/api.h"
 
 #ifdef __cplusplus
diff --git a/experimental/rocm/direct_command_buffer.c b/experimental/rocm/direct_command_buffer.c
index 9d56001..d75c060 100644
--- a/experimental/rocm/direct_command_buffer.c
+++ b/experimental/rocm/direct_command_buffer.c
@@ -6,10 +6,15 @@
 
 #include "experimental/rocm/direct_command_buffer.h"
 
+#include <assert.h>
+#include <stddef.h>
+#include <stdint.h>
+
+#include "experimental/rocm/dynamic_symbols.h"
 #include "experimental/rocm/native_executable.h"
 #include "experimental/rocm/rocm_buffer.h"
-#include "experimental/rocm/rocm_event.h"
 #include "experimental/rocm/status_util.h"
+#include "iree/base/api.h"
 #include "iree/base/tracing.h"
 
 // Command buffer implementation that directly maps to rocm direct.
diff --git a/experimental/rocm/direct_command_buffer.h b/experimental/rocm/direct_command_buffer.h
index 70519c9..0145b15 100644
--- a/experimental/rocm/direct_command_buffer.h
+++ b/experimental/rocm/direct_command_buffer.h
@@ -10,6 +10,7 @@
 #include "experimental/rocm/context_wrapper.h"
 #include "experimental/rocm/dynamic_symbols.h"
 #include "experimental/rocm/rocm_headers.h"
+#include "iree/base/api.h"
 #include "iree/hal/api.h"
 
 #ifdef __cplusplus
diff --git a/experimental/rocm/dynamic_symbols.c b/experimental/rocm/dynamic_symbols.c
index 0643cf1..d676838 100644
--- a/experimental/rocm/dynamic_symbols.c
+++ b/experimental/rocm/dynamic_symbols.c
@@ -6,7 +6,7 @@
 
 #include "experimental/rocm/dynamic_symbols.h"
 
-#include <stddef.h>
+#include <string.h>
 
 #include "iree/base/internal/dynamic_library.h"
 #include "iree/base/target_platform.h"
@@ -29,7 +29,7 @@
         syms->loader_library, kName, (void **)&syms->rocmSymbolName)); \
   }
 #define RC_PFN_STR_DECL(rocmSymbolName, ...) RC_PFN_DECL(rocmSymbolName, ...)
-#include "experimental/rocm/dynamic_symbol_tables.h"
+#include "experimental/rocm/dynamic_symbol_tables.h"  // IWYU pragma: keep
 #undef RC_PFN_DECL
 #undef RC_PFN_STR_DECL
   return iree_ok_status();
diff --git a/experimental/rocm/dynamic_symbols.h b/experimental/rocm/dynamic_symbols.h
index 2894626..00a58b0 100644
--- a/experimental/rocm/dynamic_symbols.h
+++ b/experimental/rocm/dynamic_symbols.h
@@ -19,14 +19,14 @@
 // loads all the function declared in `dynamic_symbol_tables.def` and fail if
 // any of the symbol is not available. The functions signatures are matching
 // the declarations in `hipruntime.h`.
-typedef struct {
+typedef struct iree_hal_rocm_dynamic_symbols_t {
   iree_dynamic_library_t *loader_library;
 
 #define RC_PFN_DECL(rocmSymbolName, ...) \
   hipError_t (*rocmSymbolName)(__VA_ARGS__);
 #define RC_PFN_STR_DECL(rocmSymbolName, ...) \
   const char *(*rocmSymbolName)(__VA_ARGS__);
-#include "experimental/rocm/dynamic_symbol_tables.h"
+#include "experimental/rocm/dynamic_symbol_tables.h"  // IWYU pragma: export
 #undef RC_PFN_DECL
 #undef RC_PFN_STR_DECL
 } iree_hal_rocm_dynamic_symbols_t;
diff --git a/experimental/rocm/dynamic_symbols_test.cc b/experimental/rocm/dynamic_symbols_test.cc
index dd33e07..06ea00a 100644
--- a/experimental/rocm/dynamic_symbols_test.cc
+++ b/experimental/rocm/dynamic_symbols_test.cc
@@ -6,8 +6,10 @@
 
 #include "experimental/rocm/dynamic_symbols.h"
 
+#include <iostream>
+
+#include "iree/base/api.h"
 #include "iree/testing/gtest.h"
-#include "iree/testing/status_matchers.h"
 
 namespace iree {
 namespace hal {
@@ -25,7 +27,7 @@
   iree_status_t status = iree_hal_rocm_dynamic_symbols_initialize(
       iree_allocator_system(), &symbols);
   if (!iree_status_is_ok(status)) {
-    IREE_LOG(WARNING) << "Symbols cannot be loaded, skipping test.";
+    std::cerr << "Symbols cannot be loaded, skipping test.";
     GTEST_SKIP();
   }
 
diff --git a/experimental/rocm/event_semaphore.c b/experimental/rocm/event_semaphore.c
index b05bafe..7fe6860 100644
--- a/experimental/rocm/event_semaphore.c
+++ b/experimental/rocm/event_semaphore.c
@@ -6,10 +6,12 @@
 
 #include "experimental/rocm/event_semaphore.h"
 
-#include "experimental/rocm/status_util.h"
+#include <stddef.h>
+
+#include "iree/base/api.h"
 #include "iree/base/tracing.h"
 
-typedef struct {
+typedef struct iree_hal_rocm_semaphore_t {
   iree_hal_resource_t resource;
   iree_hal_rocm_context_wrapper_t *context;
   uint64_t initial_value;
diff --git a/experimental/rocm/event_semaphore.h b/experimental/rocm/event_semaphore.h
index 87ca683..5f32492 100644
--- a/experimental/rocm/event_semaphore.h
+++ b/experimental/rocm/event_semaphore.h
@@ -7,8 +7,11 @@
 #ifndef IREE_HAL_ROCM_SEMAPHORE_H_
 #define IREE_HAL_ROCM_SEMAPHORE_H_
 
+#include <stdint.h>
+
 #include "experimental/rocm/context_wrapper.h"
 #include "experimental/rocm/status_util.h"
+#include "iree/base/api.h"
 #include "iree/hal/api.h"
 
 #ifdef __cplusplus
diff --git a/experimental/rocm/executable_layout.c b/experimental/rocm/executable_layout.c
index ba88d32..6960cd2 100644
--- a/experimental/rocm/executable_layout.c
+++ b/experimental/rocm/executable_layout.c
@@ -6,10 +6,12 @@
 
 #include "experimental/rocm/executable_layout.h"
 
-#include "experimental/rocm/status_util.h"
+#include <stddef.h>
+
+#include "iree/base/api.h"
 #include "iree/base/tracing.h"
 
-typedef struct {
+typedef struct iree_hal_rocm_executable_layout_t {
   iree_hal_resource_t resource;
   iree_hal_rocm_context_wrapper_t *context;
   iree_host_size_t set_layout_count;
diff --git a/experimental/rocm/executable_layout.h b/experimental/rocm/executable_layout.h
index c0469aa..cd0fccf 100644
--- a/experimental/rocm/executable_layout.h
+++ b/experimental/rocm/executable_layout.h
@@ -8,6 +8,7 @@
 #define IREE_HAL_ROCM_EXECUTABLE_LAYOUT_H_
 
 #include "experimental/rocm/context_wrapper.h"
+#include "iree/base/api.h"
 #include "iree/hal/api.h"
 
 #ifdef __cplusplus
diff --git a/experimental/rocm/native_executable.c b/experimental/rocm/native_executable.c
index 0f1edf2..f72bd4f 100644
--- a/experimental/rocm/native_executable.c
+++ b/experimental/rocm/native_executable.c
@@ -6,7 +6,11 @@
 
 #include "experimental/rocm/native_executable.h"
 
+#include <stddef.h>
+
+#include "experimental/rocm/dynamic_symbols.h"
 #include "experimental/rocm/status_util.h"
+#include "iree/base/api.h"
 #include "iree/base/tracing.h"
 
 // flatcc schemas:
@@ -14,14 +18,14 @@
 #include "iree/schemas/rocm_executable_def_reader.h"
 #include "iree/schemas/rocm_executable_def_verifier.h"
 
-typedef struct {
+typedef struct iree_hal_rocm_native_executable_function_t {
   hipFunction_t rocm_function;
   uint32_t block_size_x;
   uint32_t block_size_y;
   uint32_t block_size_z;
 } iree_hal_rocm_native_executable_function_t;
 
-typedef struct {
+typedef struct iree_hal_rocm_native_executable_t {
   iree_hal_resource_t resource;
   iree_hal_rocm_context_wrapper_t *context;
   iree_host_size_t entry_count;
diff --git a/experimental/rocm/native_executable.h b/experimental/rocm/native_executable.h
index 0b33b33..7a9229a 100644
--- a/experimental/rocm/native_executable.h
+++ b/experimental/rocm/native_executable.h
@@ -7,8 +7,11 @@
 #ifndef IREE_HAL_ROCM_NATIVE_EXECUTABLE_H_
 #define IREE_HAL_ROCM_NATIVE_EXECUTABLE_H_
 
+#include <stdint.h>
+
 #include "experimental/rocm/context_wrapper.h"
 #include "experimental/rocm/rocm_headers.h"
+#include "iree/base/api.h"
 #include "iree/hal/api.h"
 
 #ifdef __cplusplus
diff --git a/experimental/rocm/nop_executable_cache.c b/experimental/rocm/nop_executable_cache.c
index 35ec16c..6592727 100644
--- a/experimental/rocm/nop_executable_cache.c
+++ b/experimental/rocm/nop_executable_cache.c
@@ -6,10 +6,14 @@
 
 #include "experimental/rocm/nop_executable_cache.h"
 
+#include <stdbool.h>
+#include <stddef.h>
+
 #include "experimental/rocm/native_executable.h"
+#include "iree/base/api.h"
 #include "iree/base/tracing.h"
 
-typedef struct {
+typedef struct iree_hal_rocm_nop_executable_cache_t {
   iree_hal_resource_t resource;
   iree_hal_rocm_context_wrapper_t *context;
 } iree_hal_rocm_nop_executable_cache_t;
diff --git a/experimental/rocm/nop_executable_cache.h b/experimental/rocm/nop_executable_cache.h
index 1262fea..d1b2fc1 100644
--- a/experimental/rocm/nop_executable_cache.h
+++ b/experimental/rocm/nop_executable_cache.h
@@ -8,6 +8,7 @@
 #define IREE_HAL_ROCM_NOP_EXECUTABLE_CACHE_H_
 
 #include "experimental/rocm/context_wrapper.h"
+#include "iree/base/api.h"
 #include "iree/hal/api.h"
 
 #ifdef __cplusplus
diff --git a/experimental/rocm/registration/CMakeLists.txt b/experimental/rocm/registration/CMakeLists.txt
index f184333..36042bc 100644
--- a/experimental/rocm/registration/CMakeLists.txt
+++ b/experimental/rocm/registration/CMakeLists.txt
@@ -16,8 +16,9 @@
   SRCS
     "driver_module.c"
   DEPS
+    iree::base
+    iree::base::cc
     iree::base::core_headers
-    iree::base::status
     iree::base::tracing
     iree::hal
     experimental::rocm
diff --git a/experimental/rocm/registration/driver_module.c b/experimental/rocm/registration/driver_module.c
index a9df558..2db41b4 100644
--- a/experimental/rocm/registration/driver_module.c
+++ b/experimental/rocm/registration/driver_module.c
@@ -7,9 +7,10 @@
 #include "experimental/rocm/registration/driver_module.h"
 
 #include <inttypes.h>
+#include <stddef.h>
 
 #include "experimental/rocm/api.h"
-#include "iree/base/target_platform.h"
+#include "iree/base/api.h"
 #include "iree/base/tracing.h"
 
 #define IREE_HAL_ROCM_DRIVER_ID 0x524f434d0au  // ROCM
diff --git a/experimental/rocm/registration/driver_module.h b/experimental/rocm/registration/driver_module.h
index 6c55fea..efc1a70 100644
--- a/experimental/rocm/registration/driver_module.h
+++ b/experimental/rocm/registration/driver_module.h
@@ -7,6 +7,7 @@
 #ifndef IREE_HAL_ROCM_REGISTRATION_DRIVER_MODULE_H_
 #define IREE_HAL_ROCM_REGISTRATION_DRIVER_MODULE_H_
 
+#include "iree/base/api.h"
 #include "iree/hal/api.h"
 
 #ifdef __cplusplus
diff --git a/experimental/rocm/rocm_allocator.c b/experimental/rocm/rocm_allocator.c
index c30f4f3..cccdc9f 100644
--- a/experimental/rocm/rocm_allocator.c
+++ b/experimental/rocm/rocm_allocator.c
@@ -6,11 +6,15 @@
 
 #include "experimental/rocm/rocm_allocator.h"
 
+#include <stddef.h>
+
+#include "experimental/rocm/dynamic_symbols.h"
 #include "experimental/rocm/rocm_buffer.h"
 #include "experimental/rocm/status_util.h"
+#include "iree/base/api.h"
 #include "iree/base/tracing.h"
 
-typedef struct iree_hal_rocm_allocator_s {
+typedef struct iree_hal_rocm_allocator_t {
   iree_hal_resource_t resource;
   iree_hal_rocm_context_wrapper_t *context;
 } iree_hal_rocm_allocator_t;
diff --git a/experimental/rocm/rocm_allocator.h b/experimental/rocm/rocm_allocator.h
index 1add674..a47480c 100644
--- a/experimental/rocm/rocm_allocator.h
+++ b/experimental/rocm/rocm_allocator.h
@@ -9,6 +9,7 @@
 
 #include "experimental/rocm/context_wrapper.h"
 #include "experimental/rocm/status_util.h"
+#include "iree/base/api.h"
 #include "iree/hal/api.h"
 
 #ifdef __cplusplus
diff --git a/experimental/rocm/rocm_buffer.c b/experimental/rocm/rocm_buffer.c
index 5269b4f..195e897 100644
--- a/experimental/rocm/rocm_buffer.c
+++ b/experimental/rocm/rocm_buffer.c
@@ -6,11 +6,15 @@
 
 #include "experimental/rocm/rocm_buffer.h"
 
+#include <stddef.h>
+#include <stdint.h>
+#include <string.h>
+
 #include "experimental/rocm/rocm_allocator.h"
-#include "experimental/rocm/status_util.h"
+#include "iree/base/api.h"
 #include "iree/base/tracing.h"
 
-typedef struct iree_hal_rocm_buffer_s {
+typedef struct iree_hal_rocm_buffer_t {
   iree_hal_buffer_t base;
   void *host_ptr;
   hipDeviceptr_t device_ptr;
diff --git a/experimental/rocm/rocm_buffer.h b/experimental/rocm/rocm_buffer.h
index 7e24bc7..e898630 100644
--- a/experimental/rocm/rocm_buffer.h
+++ b/experimental/rocm/rocm_buffer.h
@@ -8,6 +8,7 @@
 #define IREE_HAL_ROCM_BUFFER_H_
 
 #include "experimental/rocm/rocm_headers.h"
+#include "iree/base/api.h"
 #include "iree/hal/api.h"
 
 #ifdef __cplusplus
diff --git a/experimental/rocm/rocm_device.c b/experimental/rocm/rocm_device.c
index b84d2bc..67418f6 100644
--- a/experimental/rocm/rocm_device.c
+++ b/experimental/rocm/rocm_device.c
@@ -6,7 +6,11 @@
 
 #include "experimental/rocm/rocm_device.h"
 
-#include "experimental/rocm/api.h"
+#include <stddef.h>
+#include <stdint.h>
+#include <string.h>
+
+#include "experimental/rocm/context_wrapper.h"
 #include "experimental/rocm/descriptor_set_layout.h"
 #include "experimental/rocm/direct_command_buffer.h"
 #include "experimental/rocm/dynamic_symbols.h"
@@ -22,7 +26,7 @@
 // iree_hal_rocm_device_t
 //===----------------------------------------------------------------------===//
 
-typedef struct {
+typedef struct iree_hal_rocm_device_t {
   iree_hal_resource_t resource;
   iree_string_view_t identifier;
 
diff --git a/experimental/rocm/rocm_device.h b/experimental/rocm/rocm_device.h
index 545436d..67e2f9b 100644
--- a/experimental/rocm/rocm_device.h
+++ b/experimental/rocm/rocm_device.h
@@ -9,6 +9,7 @@
 
 #include "experimental/rocm/api.h"
 #include "experimental/rocm/dynamic_symbols.h"
+#include "iree/base/api.h"
 #include "iree/hal/api.h"
 
 #ifdef __cplusplus
diff --git a/experimental/rocm/rocm_driver.c b/experimental/rocm/rocm_driver.c
index 4bc3323..8bd8ae6 100644
--- a/experimental/rocm/rocm_driver.c
+++ b/experimental/rocm/rocm_driver.c
@@ -4,13 +4,18 @@
 // See https://llvm.org/LICENSE.txt for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
+#include <stdint.h>
+#include <string.h>
+
 #include "experimental/rocm/api.h"
 #include "experimental/rocm/dynamic_symbols.h"
 #include "experimental/rocm/rocm_device.h"
 #include "experimental/rocm/status_util.h"
+#include "iree/base/api.h"
 #include "iree/base/tracing.h"
+#include "iree/hal/api.h"
 
-typedef struct {
+typedef struct iree_hal_rocm_driver_t {
   iree_hal_resource_t resource;
   iree_allocator_t host_allocator;
   // Identifier used for the driver in the IREE driver registry.
diff --git a/experimental/rocm/rocm_event.c b/experimental/rocm/rocm_event.c
index 2d17caa..48b20c3 100644
--- a/experimental/rocm/rocm_event.c
+++ b/experimental/rocm/rocm_event.c
@@ -6,11 +6,13 @@
 
 #include "experimental/rocm/rocm_event.h"
 
-#include "experimental/rocm/status_util.h"
+#include <stddef.h>
+
+#include "iree/base/api.h"
 #include "iree/base/tracing.h"
 
 // Dummy events for now, don't do anything.
-typedef struct {
+typedef struct iree_hal_rocm_event_t {
   iree_hal_resource_t resource;
   iree_hal_rocm_context_wrapper_t *context_wrapper;
 } iree_hal_rocm_event_t;
diff --git a/experimental/rocm/rocm_event.h b/experimental/rocm/rocm_event.h
index 6c1ece6..73041a4 100644
--- a/experimental/rocm/rocm_event.h
+++ b/experimental/rocm/rocm_event.h
@@ -9,6 +9,7 @@
 
 #include "experimental/rocm/context_wrapper.h"
 #include "experimental/rocm/rocm_headers.h"
+#include "iree/base/api.h"
 #include "iree/hal/api.h"
 
 #ifdef __cplusplus
diff --git a/experimental/rocm/rocm_headers.h b/experimental/rocm/rocm_headers.h
index 056e8c0..6f5da96 100644
--- a/experimental/rocm/rocm_headers.h
+++ b/experimental/rocm/rocm_headers.h
@@ -11,6 +11,6 @@
 #error 32-bit not supported on ROCm
 #endif  // defined(IREE_PTR_SIZE_32)
 
-#include "hip/hip_runtime.h"
+#include "hip/hip_runtime.h"  // IWYU pragma: export
 
 #endif  // IREE_HAL_ROCM_ROCM_HEADERS_H_
diff --git a/experimental/rocm/status_util.c b/experimental/rocm/status_util.c
index e1b6fd6..a084c3f 100644
--- a/experimental/rocm/status_util.c
+++ b/experimental/rocm/status_util.c
@@ -6,6 +6,8 @@
 
 #include "experimental/rocm/status_util.h"
 
+#include <stddef.h>
+
 #include "experimental/rocm/dynamic_symbols.h"
 
 iree_status_t iree_hal_rocm_result_to_status(
diff --git a/experimental/rocm/status_util.h b/experimental/rocm/status_util.h
index 31e9404..b459591 100644
--- a/experimental/rocm/status_util.h
+++ b/experimental/rocm/status_util.h
@@ -7,6 +7,8 @@
 #ifndef IREE_HAL_ROCM_STATUS_UTIL_H_
 #define IREE_HAL_ROCM_STATUS_UTIL_H_
 
+#include <stdint.h>
+
 #include "experimental/rocm/dynamic_symbols.h"
 #include "iree/base/api.h"
 
diff --git a/iree/compiler/Dialect/HAL/Target/ROCM/ROCMTarget.cpp b/iree/compiler/Dialect/HAL/Target/ROCM/ROCMTarget.cpp
index 9457a92..584f6d0 100644
--- a/iree/compiler/Dialect/HAL/Target/ROCM/ROCMTarget.cpp
+++ b/iree/compiler/Dialect/HAL/Target/ROCM/ROCMTarget.cpp
@@ -39,8 +39,13 @@
       llvm::cl::desc("Whether to try Linking to AMD Bitcodes"),
       llvm::cl::init(false));
 
+  static llvm::cl::opt<std::string> clROCMBitcodeDir(
+      "iree-rocm-bc-dir", llvm::cl::desc("Directory of ROCM Bitcode"),
+      llvm::cl::init("/opt/rocm/amdgcn/bitcode"));
+
   targetOptions.ROCMTargetChip = clROCMTargetChip;
   targetOptions.ROCMLinkBC = clROCMLinkBC;
+  targetOptions.ROCMBitcodeDir = clROCMBitcodeDir;
 
   return targetOptions;
 }
@@ -150,7 +155,8 @@
 
     // Link module to Device Library
     if (options_.ROCMLinkBC)
-      LinkROCDLIfNecessary(llvmModule.get(), options_.ROCMTargetChip);
+      LinkROCDLIfNecessary(llvmModule.get(), options_.ROCMTargetChip,
+                           options_.ROCMBitcodeDir);
 
     // Serialize hsaco kernel into the binary that we will embed in the
     // final flatbuffer.
diff --git a/iree/compiler/Dialect/HAL/Target/ROCM/ROCMTarget.h b/iree/compiler/Dialect/HAL/Target/ROCM/ROCMTarget.h
index 5a28c06..d4aa445 100644
--- a/iree/compiler/Dialect/HAL/Target/ROCM/ROCMTarget.h
+++ b/iree/compiler/Dialect/HAL/Target/ROCM/ROCMTarget.h
@@ -20,6 +20,8 @@
   std::string ROCMTargetChip;
   // Whether to try Linking to AMD Bitcodes
   bool ROCMLinkBC;
+  // AMD Bitcodes Directory
+  std::string ROCMBitcodeDir;
 };
 
 ROCMTargetOptions getROCMTargetOptionsFromFlags();
@@ -29,7 +31,8 @@
     std::function<ROCMTargetOptions()> queryOptions);
 
 // Links LLVM module to ROC Device Library Bit Code
-void LinkROCDLIfNecessary(llvm::Module *module, std::string targetChip);
+void LinkROCDLIfNecessary(llvm::Module *module, std::string targetChip,
+                          std::string bitCodeDir);
 
 // Compiles ISAToHsaco Code
 std::string createHsaco(const std::string isa, StringRef name);
diff --git a/iree/compiler/Dialect/HAL/Target/ROCM/ROCMTargetUtils.cpp b/iree/compiler/Dialect/HAL/Target/ROCM/ROCMTargetUtils.cpp
index d4b798b..37a605b 100644
--- a/iree/compiler/Dialect/HAL/Target/ROCM/ROCMTargetUtils.cpp
+++ b/iree/compiler/Dialect/HAL/Target/ROCM/ROCMTargetUtils.cpp
@@ -90,7 +90,8 @@
   return success();
 }
 
-static std::vector<std::string> GetROCDLPaths(std::string targetChip) {
+static std::vector<std::string> GetROCDLPaths(std::string targetChip,
+                                              std::string bitCodeDir) {
   // AMDGPU bitcodes.
   int lenOfChipPrefix = 3;
   std::string chipId = targetChip.substr(lenOfChipPrefix);
@@ -101,22 +102,22 @@
                                     "oclc_daz_opt_off.bc", chip_isa_bc});
 
   // Construct full path to ROCDL bitcode libraries.
-  std::string rocdl_dir_path = "/opt/rocm/amdgcn/bitcode";
   std::vector<std::string> result;
   std::string app = "/";
   for (auto &filename : *rocdl_filenames) {
-    result.push_back(rocdl_dir_path + app + filename);
+    result.push_back(bitCodeDir + app + filename);
   }
   return result;
 }
 
 // Links ROCm-Device-Libs into the given module if the module needs it.
-void LinkROCDLIfNecessary(llvm::Module *module, std::string targetChip) {
+void LinkROCDLIfNecessary(llvm::Module *module, std::string targetChip,
+                          std::string bitCodeDir) {
   if (!HAL::CouldNeedDeviceBitcode(*module)) {
     return;
   }
-  if (!succeeded(
-          HAL::LinkWithBitcodeVector(module, GetROCDLPaths(targetChip)))) {
+  if (!succeeded(HAL::LinkWithBitcodeVector(
+          module, GetROCDLPaths(targetChip, bitCodeDir)))) {
     llvm::WithColor::error(llvm::errs()) << "Fail to Link ROCDL.\n";
   };
 }
