From 6cabc4898da5a03036f59205df2ab05f6ade6322 Mon Sep 17 00:00:00 2001
From: foreman
Date: Thu, 21 Nov 2019 19:33:05 -0500
Subject: [PATCH] P4 to Git Change 2034910 by kjayapra@0_HIPWS_LNX1_ROCM on
2019/11/21 19:28:10
SWDEV-145570 - Revering CL#2033779 for now.
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/hip/hip_internal.hpp#48 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_module.cpp#49 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_platform.cpp#51 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/devprogram.cpp#70 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/devprogram.hpp#36 edit
---
hipamd/api/hip/hip_internal.hpp | 5 ++---
hipamd/api/hip/hip_module.cpp | 26 --------------------------
hipamd/api/hip/hip_platform.cpp | 8 ++++----
3 files changed, 6 insertions(+), 33 deletions(-)
diff --git a/hipamd/api/hip/hip_internal.hpp b/hipamd/api/hip/hip_internal.hpp
index 57847e4cbe..cfe5cca7d1 100644
--- a/hipamd/api/hip/hip_internal.hpp
+++ b/hipamd/api/hip/hip_internal.hpp
@@ -154,13 +154,12 @@ public:
bool dyn_undef;
};
private:
- std::unordered_map functions_;
+ std::unordered_map functions_;
std::unordered_multimap vars_;
static PlatformState* platform_;
- // the lock_ is recursive
- PlatformState() : lock_("Guards global function map", true) {}
+ PlatformState() : lock_("Guards global function map") {}
~PlatformState() {}
public:
static PlatformState& instance() {
diff --git a/hipamd/api/hip/hip_module.cpp b/hipamd/api/hip/hip_module.cpp
index e7a34c896b..bdd792e8a0 100644
--- a/hipamd/api/hip/hip_module.cpp
+++ b/hipamd/api/hip/hip_module.cpp
@@ -114,28 +114,6 @@ extern bool __hipExtractCodeObjectFromFatBinary(const void* data,
const std::vector& devices,
std::vector>& code_objs);
-bool ihipModuleRegisterFunc(amd::Program* program, hipModule_t* module) {
- std::vector func_names;
- device::Program* dev_program
- = program->getDeviceProgram(*hip::getCurrentContext()->devices()[0]);
-
- if (!dev_program->getFuncsFromCodeObj(&func_names)) {
- return false;
- }
-
- for (auto it = func_names.begin(); it != func_names.end(); ++it) {
- auto modules = new std::vector>(g_devices.size());
- for (size_t dev = 0; dev < g_devices.size(); ++dev) {
- modules->at(dev) = std::make_pair(*module, true);
- }
-
- PlatformState::DeviceFunction dfunc{std::string{it->c_str()}, modules,
- std::vector(g_devices.size())};
- PlatformState::instance().registerFunction(it->c_str(), dfunc);
- }
-
- return true;
-}
bool ihipModuleRegisterUndefined(amd::Program* program, hipModule_t* module) {
std::vector undef_vars;
@@ -218,10 +196,6 @@ hipError_t ihipModuleLoadData(hipModule_t *module, const void *image)
return hipErrorSharedObjectSymbolNotFound;
}
- if (!ihipModuleRegisterFunc(program, module)) {
- return hipErrorSharedObjectSymbolNotFound;
- }
-
if(CL_SUCCESS != program->build(hip::getCurrentContext()->devices(), nullptr, nullptr, nullptr)) {
return hipErrorSharedObjectInitFailed;
}
diff --git a/hipamd/api/hip/hip_platform.cpp b/hipamd/api/hip/hip_platform.cpp
index e4b4ed8a49..37d022faa9 100644
--- a/hipamd/api/hip/hip_platform.cpp
+++ b/hipamd/api/hip/hip_platform.cpp
@@ -231,7 +231,7 @@ void PlatformState::registerVar(const void* hostvar,
void PlatformState::registerFunction(const void* hostFunction,
const DeviceFunction& func) {
amd::ScopedLock lock(lock_);
- functions_.insert(std::make_pair(std::string(reinterpret_cast(hostFunction)), func));
+ functions_.insert(std::make_pair(hostFunction, func));
}
bool ihipGetFuncAttributes(const char* func_name, amd::Program* program, hipFuncAttributes* func_attr) {
@@ -272,7 +272,7 @@ bool CL_CALLBACK getSvarInfo(cl_program program, std::string var_name, void** va
hipFunction_t PlatformState::getFunc(const void* hostFunction, int deviceId) {
amd::ScopedLock lock(lock_);
- const auto it = functions_.find(std::string(reinterpret_cast(hostFunction)));
+ const auto it = functions_.find(hostFunction);
if (it != functions_.cend()) {
PlatformState::DeviceFunction& devFunc = it->second;
if (devFunc.functions[deviceId] == 0) {
@@ -302,12 +302,12 @@ hipFunction_t PlatformState::getFunc(const void* hostFunction, int deviceId) {
bool PlatformState::getFuncAttr(const void* hostFunction,
hipFuncAttributes* func_attr) {
- amd::ScopedLock lock(lock_);
+
if (func_attr == nullptr) {
return false;
}
- const auto it = functions_.find(std::string(reinterpret_cast(hostFunction)));
+ const auto it = functions_.find(hostFunction);
if (it == functions_.cend()) {
return false;
}