From 75459bc6b7274fabdf7e46856232b267ce32e338 Mon Sep 17 00:00:00 2001
From: foreman
Date: Mon, 12 Aug 2019 21:22:47 -0400
Subject: [PATCH] P4 to Git Change 1982056 by kjayapra@3_HIPWS_TXT_ROCM on
2019/08/12 21:16:51
SWDEV-199635 - Setting VarInfoCallBack before all program builds.
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/hip/hip_internal.hpp#36 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_module.cpp#33 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/devprogram.cpp#58 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#97 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#106 edit
[ROCm/clr commit: 8cc1539b3516d2b698452d54da3d7f740db54938]
---
projects/clr/rocclr/runtime/device/devprogram.cpp | 7 ++++++-
projects/clr/rocclr/runtime/device/pal/palprogram.cpp | 8 ++++++--
projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp | 8 ++++++--
3 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/projects/clr/rocclr/runtime/device/devprogram.cpp b/projects/clr/rocclr/runtime/device/devprogram.cpp
index 2b400778d4..b40c0a96bd 100644
--- a/projects/clr/rocclr/runtime/device/devprogram.cpp
+++ b/projects/clr/rocclr/runtime/device/devprogram.cpp
@@ -3182,7 +3182,12 @@ bool Program::getUndefinedVarFromCodeObj(std::vector* var_names) co
}
bool Program::getUndefinedVarInfo(std::string var_name, void** var_addr, size_t* var_size) {
- return owner()->varcallback(as_cl(owner()), var_name.c_str(), var_addr, var_size);
+ if (owner()->varcallback != nullptr) {
+ return owner()->varcallback(as_cl(owner()), var_name.c_str(), var_addr, var_size);
+ } else {
+ buildLog_ += "SVAR HIP Call back is not set \n";
+ return false;
+ }
}
bool Program::defineUndefinedVars() {
diff --git a/projects/clr/rocclr/runtime/device/pal/palprogram.cpp b/projects/clr/rocclr/runtime/device/pal/palprogram.cpp
index ad5f9373bf..5377cde2a1 100644
--- a/projects/clr/rocclr/runtime/device/pal/palprogram.cpp
+++ b/projects/clr/rocclr/runtime/device/pal/palprogram.cpp
@@ -250,7 +250,9 @@ bool HSAILProgram::setKernels(amd::option::Options* options, void* binary, size_
hsa_code_object_t code_object;
code_object.handle = reinterpret_cast(binary);
- defineUndefinedVars();
+ if (amd::IS_HIP) {
+ defineUndefinedVars();
+ }
hsa_status_t status = executable_->LoadCodeObject(agent, code_object, nullptr);
if (status != HSA_STATUS_SUCCESS) {
@@ -745,7 +747,9 @@ bool LightningProgram::setKernels(amd::option::Options* options, void* binary, s
hsa_code_object_t code_object;
code_object.handle = reinterpret_cast(binary);
- defineUndefinedVars();
+ if (amd::IS_HIP) {
+ defineUndefinedVars();
+ }
hsa_status_t status = executable_->LoadCodeObject(agent, code_object, nullptr);
if (status != HSA_STATUS_SUCCESS) {
diff --git a/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp b/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp
index e02c7f97c1..53f68dd7d8 100644
--- a/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp
+++ b/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp
@@ -273,7 +273,9 @@ bool HSAILProgram::setKernels(amd::option::Options* options, void* binary, size_
return false;
}
- defineUndefinedVars();
+ if (amd::IS_HIP) {
+ defineUndefinedVars();
+ }
// Load the code object.
hsa_code_object_reader_t codeObjectReader;
@@ -478,7 +480,9 @@ bool LightningProgram::setKernels(amd::option::Options* options, void* binary, s
return false;
}
- defineUndefinedVars();
+ if (amd::IS_HIP) {
+ defineUndefinedVars();
+ }
// Load the code object.
status = hsa_code_object_reader_create_from_memory(binary, binSize, &hsaCodeObjectReader_);