From 5b7a2bc281c7724b53307d380aa66058f5abcaba Mon Sep 17 00:00:00 2001 From: foreman Date: Mon, 3 Dec 2018 14:54:31 -0500 Subject: [PATCH] P4 to Git Change 1715227 by wchau@wchau_OCL_boltzmann on 2018/12/03 14:41:05 SWDEV-79445 - OCL generic changes and code clean-up - Modify CMakeLists.txt to switch to different library interface to match the COMgr requirement Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/CMakeLists.txt#16 edit --- rocclr/runtime/device/rocm/CMakeLists.txt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/rocclr/runtime/device/rocm/CMakeLists.txt b/rocclr/runtime/device/rocm/CMakeLists.txt index 1d8194e251..017e242463 100644 --- a/rocclr/runtime/device/rocm/CMakeLists.txt +++ b/rocclr/runtime/device/rocm/CMakeLists.txt @@ -45,25 +45,29 @@ foreach(AMDGCN_LIB_TARGET ${AMDGCN_LIB_TARGETS}) file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libraries.amdgcn.inc "#include \"${header}\"\n") endforeach() +# Generate function to select libraries for a given GFXIP number. file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libraries.amdgcn.inc - "static inline std::pair\nget_oclc_isa_version(uint gfxip)\n{\nswitch (gfxip) {\n") + "static inline std::tuple get_oclc_isa_version(uint gfxip) { \ + switch (gfxip) {\n") foreach(AMDGCN_LIB_TARGET ${AMDGCN_LIB_TARGETS}) if (${AMDGCN_LIB_TARGET} MATCHES "^oclc_isa_version_[0-9]+_lib$") string(REGEX REPLACE "^oclc_isa_version_([0-9]+)_lib$" "\\1" gfxip ${AMDGCN_LIB_TARGET}) file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libraries.amdgcn.inc - "case ${gfxip}: return {oclc_isa_version_${gfxip}_amdgcn, oclc_isa_version_${gfxip}_amdgcn_size}; break;\n") + "case ${gfxip}: return std::make_tuple( \"oclc_isa_version_${gfxip}_amdgcn.bc\"," + " oclc_isa_version_${gfxip}_amdgcn, oclc_isa_version_${gfxip}_amdgcn_size); break;\n") endif() endforeach() file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libraries.amdgcn.inc - "default: return {(const void*)0,(size_t)0};\n}\n}\n") + "default: return std::make_tuple(\"\",(const void*)0,(size_t)0); }\n}\n") foreach(AMDGCN_LIB_TARGET ${AMDGCN_LIB_TARGETS}) if (${AMDGCN_LIB_TARGET} MATCHES "oclc_(.*)_on_lib") string(REGEX REPLACE "oclc_(.*)_on_lib" "\\1" function ${AMDGCN_LIB_TARGET}) file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/libraries.amdgcn.inc - "static inline std::pair get_oclc_${function}(bool on)\n{ return {" - "(const char*)(on ? oclc_${function}_on_amdgcn : oclc_${function}_off_amdgcn)," - "on ? oclc_${function}_on_amdgcn_size : oclc_${function}_off_amdgcn_size};}\n") + "static inline std::tuple get_oclc_${function}(bool on)" + " { return std::make_tuple( on ? \"oclc_${function}_on_lib.bc\" : \"oclc_${function}_off_lib.bc\"," + " (const void*)(on ? oclc_${function}_on_amdgcn : oclc_${function}_off_amdgcn)," + " on ? oclc_${function}_on_amdgcn_size : oclc_${function}_off_amdgcn_size); }\n") endif() endforeach()