From 67959e538464f6535cfe438821180523f53d2939 Mon Sep 17 00:00:00 2001 From: foreman Date: Mon, 24 Aug 2015 16:47:42 -0400 Subject: [PATCH] P4 to Git Change 1183997 by rayxiao@alit_opencl_rayxiao on 2015/08/24 16:30:20 ECR #304775 - AMDOCL12Adapter: Adapter pass for builtin calls for 1.2 kernels to be converted to 2.0 builtin calls. Add -cl-std=CL1.2 to build options to force OpenCL1.2, set environment variable GPU_HSAIL_ENABLE=1 to force HSAIL path. Affected files ... ... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/lib/AMDFixupKernelModule.cpp#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/tools/opencl-link/opencl-link.cpp#2 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/InitializePasses.h#82 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/Transforms/Scalar.h#87 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/Scalar/AMDInsertOpenCLKernenv.cpp#6 edit ... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/Scalar/AMDOCL12Adapter.cpp#1 add ... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/Scalar/AMDPrintfRuntimeBinding.cpp#11 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#201 edit ... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/compiler/GlobalConstPtr/simpleCopy.cpp#3 edit ... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/compiler/OCLBinaryOperations.cpp#6 edit ... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/compiler/OCLSeparateCompile.cpp#11 edit ... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/compiler/oclcompiler.exclude.hsail12#1 add ... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/runtime/oclruntime.exclude.hsail12#1 add --- rocclr/runtime/device/gpu/gpuprogram.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/rocclr/runtime/device/gpu/gpuprogram.cpp b/rocclr/runtime/device/gpu/gpuprogram.cpp index c8a737ae70..888bd0afcb 100644 --- a/rocclr/runtime/device/gpu/gpuprogram.cpp +++ b/rocclr/runtime/device/gpu/gpuprogram.cpp @@ -1817,6 +1817,11 @@ HSAILProgram::linkImpl( errorCode = aclLink(dev().hsaCompiler(), binaries_to_link[0], binaries_to_link.size() - 1, &binaries_to_link[1], ACL_TYPE_LLVMIR_BINARY, "-create-library", NULL); + if (errorCode != ACL_SUCCESS) { + buildLog_ +="Error while linking : \ + aclLink failed" ; + return false; + } } // Store the newly linked aclBinary for this program. binaryElf_ = binaries_to_link[0]; @@ -1824,7 +1829,17 @@ HSAILProgram::linkImpl( for (size_t i = 1; i < binaries_to_link.size(); i++) { aclBinaryFini(binaries_to_link[i]); } - + if (createLibrary || options->oVariables->EnableDebug) { + // Save the binary in the interface class + size_t size = 0; + void *mem = NULL; + aclWriteToMem(binaryElf_, &mem, &size); + setBinary(static_cast(mem), size); + if (createLibrary) + setType(TYPE_LIBRARY); + buildLog_ += aclGetCompilerLog(dev().hsaCompiler()); + return true; + } // Now call linkImpl with the new options return linkImpl(options); }