SWDEV-376413 - Revert "SWDEV-376413 - Replace deprecated Comgr device-lib action"

This reverts commit 0969056f66.

Reason for revert: Test failures with Luxmark, blender, and Indigobench. Need to investigate before re-applying

Change-Id: I6b08273a8f9c8bcaa4e7a06cd42d15048e52ca2a
Этот коммит содержится в:
Jacob Lambert
2023-02-06 19:10:53 -05:00
коммит произвёл German Andryeyev
родитель 67af16bdf3
Коммит 5168485d23
2 изменённых файлов: 29 добавлений и 14 удалений
+26 -11
Просмотреть файл
@@ -346,7 +346,7 @@ amd_comgr_status_t Program::createAction(const amd_comgr_language_t oclver,
bool Program::linkLLVMBitcode(const amd_comgr_data_set_t inputs,
const std::vector<std::string>& options,
amd::option::Options* amdOptions, amd_comgr_data_set_t* output,
char* binaryData[], size_t* binarySize) {
char* binaryData[], size_t* binarySize, const bool link_dev_libs) {
amd_comgr_language_t langver;
setLanguage(amdOptions->oVariables->CLStd, &langver);
@@ -358,13 +358,28 @@ bool Program::linkLLVMBitcode(const amd_comgr_data_set_t inputs,
// Create the action for linking
amd_comgr_action_info_t action;
amd_comgr_data_set_t dataSetDevLibs;
bool hasAction = false;
bool hasDataSetDevLibs = false;
amd_comgr_status_t status = createAction(langver, options, &action, &hasAction);
if (link_dev_libs) {
if (status == AMD_COMGR_STATUS_SUCCESS) {
status = amd::Comgr::create_data_set(&dataSetDevLibs);
}
if (status == AMD_COMGR_STATUS_SUCCESS) {
hasDataSetDevLibs = true;
status = amd::Comgr::do_action(AMD_COMGR_ACTION_ADD_DEVICE_LIBRARIES, action, inputs,
dataSetDevLibs);
extractBuildLog(dataSetDevLibs);
}
}
if (status == AMD_COMGR_STATUS_SUCCESS) {
status = amd::Comgr::do_action(AMD_COMGR_ACTION_LINK_BC_TO_BC, action,
inputs, *output);
(link_dev_libs) ? dataSetDevLibs : inputs, *output);
extractBuildLog(*output);
}
@@ -381,14 +396,17 @@ bool Program::linkLLVMBitcode(const amd_comgr_data_set_t inputs,
amd::Comgr::destroy_action_info(action);
}
if (hasDataSetDevLibs) {
amd::Comgr::destroy_data_set(dataSetDevLibs);
}
return (status == AMD_COMGR_STATUS_SUCCESS);
}
bool Program::compileToLLVMBitcode(const amd_comgr_data_set_t compileInputs,
const std::vector<std::string>& options,
amd::option::Options* amdOptions,
char* binaryData[], size_t* binarySize,
const bool link_dev_libs) {
char* binaryData[], size_t* binarySize) {
amd_comgr_language_t langver;
setLanguage(amdOptions->oVariables->CLStd, &langver);
@@ -465,12 +483,8 @@ bool Program::compileToLLVMBitcode(const amd_comgr_data_set_t compileInputs,
// Compiling the source codes with precompiled headers or directly compileInputs
if (status == AMD_COMGR_STATUS_SUCCESS) {
if (link_dev_libs)
status = amd::Comgr::do_action(AMD_COMGR_ACTION_COMPILE_SOURCE_WITH_DEVICE_LIBS_TO_BC,
action, input, output);
else
status = amd::Comgr::do_action(AMD_COMGR_ACTION_COMPILE_SOURCE_TO_BC,
action, input, output);
status = amd::Comgr::do_action(AMD_COMGR_ACTION_COMPILE_SOURCE_TO_BC,
action, input, output);
extractBuildLog(output);
}
@@ -956,8 +970,9 @@ bool Program::linkImplLC(const std::vector<Program*>& inputPrograms,
char* binaryData = nullptr;
size_t binarySize = 0;
std::vector<std::string> linkOptions;
constexpr bool kLinkDevLibs = false;
bool ret = linkLLVMBitcode(inputs, linkOptions, options, &output, &binaryData,
&binarySize);
&binarySize, kLinkDevLibs);
amd::Comgr::destroy_data_set(output);
amd::Comgr::destroy_data_set(inputs);