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);
}