P4 to Git Change 1142726 by emankov@em-hsa-amd on 2015/04/21 07:12:16

ECR #333753 - Compiler Lib/ORCA RT: JIT refactoring

	Purpose: Make JIT work with different LLVMs - LLVM 3.6 pre-merge task.

	Synopsis: After splitting of Compiler Lib, JIT appeared to be apart from Compiler Lib's infrastructure and without any wrapping, hence working only with statically linked LLVM from amdocl library (HSAIL), which is unacceptable in the light of 2 LLVMs after upcoming LLVM 3.6 merge. CPU should work on LLVM 3.2.

	Finally JIT folder is totally removed from the Compiler Lib sources and make system as unneeded laterally from the Compiler Lib’s infrastructure solution.

	Testing: pre check-in, smoke, ocl_conformance 1.2 CPU (selectively)

	Reviewers: Stanislav Mekhanoshin, Brian Sumner, Jan Sjodin, Artem Tamazov, Daniil Fukalov

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/build/Makefile.api#109 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/Makefile#33 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/api/v0_8/acl.cpp#29 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/api/v0_8/aclLoaders.cpp#12 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/Disassembler.cpp#1 move/add
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/Disassembler.h#1 move/add
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/build/Makefile.common#29 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/codegen.cpp#61 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/codegen.hpp#3 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#66 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.h#3 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/cpu/x86_be.cpp#29 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/build/Makefile.complib#80 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/acl.h#9 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/aclFunctors.h#5 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/aclStructs.h#16 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/aclTypes.h#6 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/jit/Makefile#2 delete
... //depot/stg/opencl/drivers/opencl/compiler/lib/jit/include/jit.h#3 delete
... //depot/stg/opencl/drivers/opencl/compiler/lib/jit/src/Disassembler.cpp#4 move/delete
... //depot/stg/opencl/drivers/opencl/compiler/lib/jit/src/Disassembler.h#2 move/delete
... //depot/stg/opencl/drivers/opencl/compiler/lib/jit/src/Makefile#2 delete
... //depot/stg/opencl/drivers/opencl/compiler/lib/jit/src/build/Makefile#2 delete
... //depot/stg/opencl/drivers/opencl/compiler/lib/jit/src/build/Makefile.src#5 delete
... //depot/stg/opencl/drivers/opencl/compiler/lib/jit/src/jit.cpp#15 delete
... //depot/stg/opencl/drivers/opencl/compiler/lib/jit/src/jit.hpp#3 delete
... //depot/stg/opencl/drivers/opencl/compiler/llvm/linux/include/llvm/Config/config.h#27 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm32/linux/include/llvm/Config/config.h#2 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/cpu/cpubinary.cpp#10 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/cpu/cpuprogram.cpp#64 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/cpu/cpuprogram.hpp#12 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/complib/CLAssumptionCheck.cpp#41 edit


[ROCm/clr commit: b607f5194c]
This commit is contained in:
foreman
2015-04-21 07:20:43 -04:00
parent 00c0c277f5
commit 65c0e42306
13 changed files with 1289 additions and 49 deletions
@@ -173,9 +173,12 @@ ClBinary::loadX86JIT(Program& program, bool& hasJITBinary)
// force recompiling
return true;
}
program.setJITBinary(aclJITObjectImageCopy(section, sz));
acl_error err = ACL_SUCCESS;
program.setJITBinary(aclJITObjectImageCopy(program.compiler(), section, sz, &err));
if (err != ACL_SUCCESS) {
LogWarning("aclJITObjectImageCopy failed");
return false;
}
hasJITBinary = true;
return true;
}
@@ -192,10 +195,18 @@ bool
ClBinary::storeX86JIT(Program& program)
{
if (saveISA()) {
acl_error err = ACL_SUCCESS;
aclJITObjectImage objectImage = program.getJITBinary();
const char* x86CodePtr = aclJITObjectImageData(objectImage);
size_t x86CodeSize = aclJITObjectImageSize(objectImage);
size_t x86CodeSize = aclJITObjectImageSize(program.compiler(), objectImage, &err);
if (err != ACL_SUCCESS) {
LogWarning("aclJITObjectImageSize failed");
return false;
}
const char* x86CodePtr = aclJITObjectImageData(program.compiler(), objectImage, &err);
if (err != ACL_SUCCESS) {
LogWarning("aclJITObjectImageData failed");
return false;
}
elfOut_->addSection(amd::OclElf::JITBINARY, x86CodePtr, x86CodeSize);
}
return true;