P4 to Git Change 1182078 by yaxunl@yaxunl_stg_win50 on 2015/08/19 07:12:32

ECR #354633 - SPIR-V: Add consumption of SPIR-V to HSAIL path.

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/build/Makefile.api#120 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_program.cpp#36 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/icd/OpenCL.def.in#11 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/icd/icd_exports.map.in#7 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/Makefile#35 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/api/v0_8/acl.cpp#34 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/api/v0_8/aclValidation.cpp#6 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#73 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/build/Makefile.complib#90 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/acl.h#10 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/aclEnums.h#21 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/aclTypes.h#7 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/bif/bifinternal.hpp#11 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/spirv/Makefile#1 add
... //depot/stg/opencl/drivers/opencl/compiler/lib/spirv/build/Makefile#1 add
... //depot/stg/opencl/drivers/opencl/compiler/lib/spirv/build/Makefile.spirv#1 add
... //depot/stg/opencl/drivers/opencl/compiler/lib/spirv/spirvUtils.cpp#1 add
... //depot/stg/opencl/drivers/opencl/compiler/lib/spirv/spirvUtils.h#1 add
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/options.hpp#16 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.h#22 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.cpp#182 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#250 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#200 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.cpp#64 edit
... //depot/stg/opencl/drivers/opencl/tests/conformance/devel/2.0/test_conformance/spirv/select.zip#1 add
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/complib/CLEnumCheck.cpp#46 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/complib/CLEnumCheck.h#4 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/complib/aclAPI.cpp#20 edit
Este commit está contenido en:
foreman
2015-08-19 07:28:56 -04:00
padre bd71fc8775
commit 773ffef7d2
Se han modificado 12 ficheros con 170 adiciones y 52 borrados
+7 -37
Ver fichero
@@ -32,6 +32,8 @@ extern void DeviceUnload();
#endif
#include "utils/bif_section_labels.hpp"
#include "utils/libUtils.h"
#include "spirv/spirvUtils.h"
#include <vector>
#include <string>
@@ -41,20 +43,7 @@ extern void DeviceUnload();
#include <fstream>
#include <set>
#if !defined(BCMAG)
#define BCMAG "BC"
#define SBCMAG 2
#endif
// Helper predicate returns true if p starts with bit code signature.
// TODO: Move it into Compiler Lib back in new 1_0 API
inline static bool
isBcMagic(const char* p)
{
if (p==NULL || strncmp(p, BCMAG, SBCMAG) != 0) {
return false;
}
return true;
}
namespace device {
extern const char* BlitSourceCode;
@@ -252,27 +241,6 @@ Device::~Device()
}
}
// TODO: Move it into Compiler Lib in new 1_0 API
bool
Device::verifyBinaryImage( const void* image, size_t size) const
{
const char* p = static_cast<const char*>(image);
#if defined(HAVE_BLOWFISH_H)
int outBufSize;
if (amd::isEncryptedBIF(p, (int)size, &outBufSize)) {
// For encrypted image, check it later and simply return true here.
return true;
}
#endif
if (amd::isElfMagic(p)) {
return true;
}
if (isBcMagic(p)) {
return true;
}
return false;
}
bool
Device::isAncestor(const Device* sub) const
{
@@ -1069,7 +1037,8 @@ Program::initClBinary(char* binaryIn, size_t size)
int encryptCode = 0;
char* decryptedBin = NULL;
if (isBcMagic(binaryIn))
bool isSPIRV = isSPIRVMagic(binaryIn, size);
if (isSPIRV || isBcMagic(binaryIn))
{
acl_error err = ACL_SUCCESS;
aclBinaryOptions binOpts = {0};
@@ -1087,7 +1056,8 @@ Program::initClBinary(char* binaryIn, size_t size)
aclBinaryFini(aclbin_v30);
return false;
}
err = aclInsertSection(device().compiler(), aclbin_v30, binaryIn, size, aclSPIR);
err = aclInsertSection(device().compiler(), aclbin_v30, binaryIn, size,
isSPIRV?aclSPIRV:aclSPIR);
if (ACL_SUCCESS != err) {
LogWarning("aclInsertSection failed");
aclBinaryFini(aclbin_v30);