summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunyan He <junyan.he@intel.com>2017-06-23 18:18:27 +0800
committerYang Rong <rong.r.yang@intel.com>2017-08-02 17:16:30 +0800
commit05cccebd9e7e8a69c189de4fc1d84b82c86704f2 (patch)
tree3506f493d369c2a20b172525addd3d7bf0dd3dba
parentcf896507e2a1c4e505761bb1b29c9d97d5c2537a (diff)
downloadbeignet-05cccebd9e7e8a69c189de4fc1d84b82c86704f2.tar.gz
FIx get kernel arg info crash bug.
Signed-off-by: Junyan He <junyan.he@intel.com>
-rw-r--r--backend/src/llvm/llvm_gen_backend.cpp5
-rw-r--r--backend/src/llvm/llvm_passes.cpp6
2 files changed, 6 insertions, 5 deletions
diff --git a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp
index 2488c318..399ba65f 100644
--- a/backend/src/llvm/llvm_gen_backend.cpp
+++ b/backend/src/llvm/llvm_gen_backend.cpp
@@ -1322,8 +1322,9 @@ namespace gbe
if(typeBaseNameNode) {
llvmInfo.typeBaseName= (cast<MDString>(typeBaseNameNode->getOperand(opID)))->getString();
}
- llvmInfo.typeName= (cast<MDString>(typeNameNode->getOperand(opID)))->getString();
- llvmInfo.typeQual = (cast<MDString>(typeQualNode->getOperand(opID)))->getString();
+ if (typeQualNode) {
+ llvmInfo.typeQual = (cast<MDString>(typeQualNode->getOperand(opID)))->getString();
+ }
bool isImage = llvmInfo.isImageType();
bool isPipe = llvmInfo.isPipeType();
if (I->getType()->isPointerTy() || isImage || isPipe) {
diff --git a/backend/src/llvm/llvm_passes.cpp b/backend/src/llvm/llvm_passes.cpp
index 10752a35..fbdb02c5 100644
--- a/backend/src/llvm/llvm_passes.cpp
+++ b/backend/src/llvm/llvm_passes.cpp
@@ -43,8 +43,9 @@ namespace gbe
bool isKernelFunction(const llvm::Function &F) {
bool bKernel = false;
#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 39
- bKernel = F.getMetadata("kernel_arg_name") != NULL;
-#else
+ if (F.getMetadata("kernel_arg_name") != NULL)
+ return true;
+#endif
const Module *module = F.getParent();
const Module::NamedMDListType& globalMD = module->getNamedMDList();
for(auto i = globalMD.begin(); i != globalMD.end(); i++) {
@@ -61,7 +62,6 @@ namespace gbe
if(op == &F) bKernel = true;
}
}
-#endif
return bKernel;
}