From 7b8634a03cecafdbec79f2fc96ddfb15512e3d08 Mon Sep 17 00:00:00 2001 From: foreman Date: Mon, 9 Sep 2019 14:42:47 -0400 Subject: [PATCH] P4 to Git Change 1995665 by skudchad@skudchad_test2_win_opencl on 2019/09/09 14:36:57 SWDEV-199293 - Implement hiprtcGetLoweredName ReviewBoardURL = http://ocltc.amd.com/reviews/r/17960/diff/ Affected files ... ... //depot/stg/opencl/drivers/opencl/api/hip/hip_rtc.cpp#3 edit [ROCm/hip commit: f3e2d275c58a05a5c152abe8003219d07b760914] --- projects/hip/api/hip/hip_rtc.cpp | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/projects/hip/api/hip/hip_rtc.cpp b/projects/hip/api/hip/hip_rtc.cpp index c339f01401..9928dcdfd2 100644 --- a/projects/hip/api/hip/hip_rtc.cpp +++ b/projects/hip/api/hip/hip_rtc.cpp @@ -93,8 +93,7 @@ struct _hiprtcProgram { static hiprtcResult destroy(_hiprtcProgram* p) { amd::ScopedLock lock(_hiprtcProgram::lock_); - const auto it { - std::find_if(programs_.cbegin(), programs_.cend(), + const auto it{ std::find_if(programs_.cbegin(), programs_.cend(), [=](const std::unique_ptr<_hiprtcProgram>& x) { return x.get() == p; }) }; @@ -195,7 +194,29 @@ hiprtcResult hiprtcDestroyProgram(hiprtcProgram* p) { return _hiprtcProgram::destroy(*p); } -hiprtcResult hiprtcGetLoweredName(hiprtcProgram p, const char* n, const char** ln) { +hiprtcResult hiprtcGetLoweredName(hiprtcProgram p, const char* n, const char** loweredNames) { + if (n == nullptr || loweredNames == nullptr) { + return HIPRTC_ERROR_INVALID_INPUT; + } + + if (!isValidProgram(p)) { + return HIPRTC_ERROR_INVALID_PROGRAM; + } + + if (!p->compiled) { + return HIPRTC_ERROR_INVALID_PROGRAM; + } + + const auto it{ std::find_if(p->names.cbegin(), p->names.cend(), + [=](const pair& x) + { return x.first == n; })}; + + if (it == p->names.cend()) { + return HIPRTC_ERROR_NAME_EXPRESSION_NOT_VALID; + } + + *loweredNames = p->loweredNames[distance(p->names.cbegin(), it)].c_str(); + return HIPRTC_SUCCESS; }