P4 to Git Change 1114755 by emankov@em-hsa-amd on 2015/01/23 11:28:27
ECR #333753 - Partial fix for Bug 10478 "Fix -fno-bin-llvmir/-fno-bin-hsail options" If option -fno-bin-llvmi is set, .llvmir section is deleted from BIF on CG phase instead of FE. Both HSA & AMDIL are affected. [Fixed] -fno-bin-llvm option causes clBuildProgram fail with error -11. Took place only if compiled from OpenCL [TODO] If possible -fno-bin-hsail should avoid putting HSAIL binary (BRIG) into BIF. [Tests] pre check-in, make smoke, complib [Reviewers] Brian Sumner, Nikolay Haustov Affected files ... ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/frontend.cpp#31 edit ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/frontend_clang.cpp#17 edit ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#58 edit ... //depot/stg/opencl/drivers/opencl/compiler/tools/aoc2/aoc2.cpp#63 edit ... //depot/stg/opencl/drivers/opencl/tests/hsa/src/complib/options/-fbin-llvmir/HelloWorld_Kernel_cl.cl#1 add ... //depot/stg/opencl/drivers/opencl/tests/hsa/src/complib/options/-fno-bin-llvmir/HelloWorld_Kernel_cl.cl#1 add ... //depot/stg/opencl/drivers/opencl/tests/hsa/tlst/complib.tlst#3 edit
This commit is contained in:
@@ -269,19 +269,8 @@ amdcl::OCLFrontend::compileCommand(const std::string& singleSrc)
|
||||
if (!llvmbinary_) {
|
||||
ret |= 1;
|
||||
}
|
||||
if (!ret &&
|
||||
#if WITH_VERSION_0_8
|
||||
checkFlag(aclutGetCaps(Elf()), capSaveLLVMIR)
|
||||
#elif WITH_VERSION_0_9
|
||||
Options()->oVariables->BinLLVMIR
|
||||
#else
|
||||
#error "The current version was not handled correctly here."
|
||||
#endif
|
||||
) {
|
||||
CL()->clAPI.insSec(CL(), Elf(), Source().data(),
|
||||
Source().size(), aclLLVMIR);
|
||||
} else {
|
||||
CL()->clAPI.remSec(CL(), Elf(), aclLLVMIR);
|
||||
if (!ret) {
|
||||
CL()->clAPI.insSec(CL(), Elf(), Source().data(), Source().size(), aclLLVMIR);
|
||||
}
|
||||
log_ += loadFileToStr(logFile);
|
||||
amd::Os::unlink(logFile.c_str());
|
||||
|
||||
@@ -190,19 +190,8 @@ int amdcl::ClangOCLFrontend::compileCommand(const std::string& src) {
|
||||
ret |= 1;
|
||||
}
|
||||
|
||||
if (!ret &&
|
||||
#if WITH_VERSION_0_8
|
||||
checkFlag(aclutGetCaps(Elf()), capSaveLLVMIR)
|
||||
#elif WITH_VERSION_0_9
|
||||
Options()->oVariables->BinLLVMIR
|
||||
#else
|
||||
#error "The current version was not handled correctly here."
|
||||
#endif
|
||||
) {
|
||||
CL()->clAPI.insSec(CL(), Elf(), Source().data(),
|
||||
Source().size(), aclLLVMIR);
|
||||
} else {
|
||||
CL()->clAPI.remSec(CL(), Elf(), aclLLVMIR);
|
||||
if (!ret) {
|
||||
CL()->clAPI.insSec(CL(), Elf(), Source().data(), Source().size(), aclLLVMIR);
|
||||
}
|
||||
log_ += logFromClang;
|
||||
if (isCpuTarget(Elf()->target)
|
||||
|
||||
@@ -1214,7 +1214,10 @@ aclCompileInternal(
|
||||
}
|
||||
dataStr = *cg;
|
||||
}
|
||||
|
||||
if (!checkFlag(aclutGetCaps(bin), capSaveLLVMIR) ||
|
||||
!(reinterpret_cast<amdcl::CompilerStage*>(ald))->Options()->oVariables->BinLLVMIR) {
|
||||
cl->clAPI.remSec(cl, bin, aclLLVMIR);
|
||||
}
|
||||
cl->cgAPI.fini(ald);
|
||||
if (error_code != ACL_SUCCESS) {
|
||||
goto internal_compile_failure;
|
||||
|
||||
Verwijs in nieuw issue
Block a user