[Beignet] [PATCH] Backend: Fix llvm40 assert about literal structs
Xiuli Pan
xiuli.pan at intel.com
Tue Apr 25 05:26:33 UTC 2017
From: Pan Xiuli <xiuli.pan at intel.com>
In llvm literal structs have no name, so check it first.
Signed-off-by: Pan Xiuli <xiuli.pan at intel.com>
---
backend/src/llvm/llvm_gen_backend.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp
index 9954021..831666e 100644
--- a/backend/src/llvm/llvm_gen_backend.cpp
+++ b/backend/src/llvm/llvm_gen_backend.cpp
@@ -362,7 +362,8 @@ namespace gbe
Type *eltTy = dyn_cast<PointerType>(type)->getElementType();
if (eltTy->isStructTy()) {
StructType *strTy = dyn_cast<StructType>(eltTy);
- if (strTy->getName().data() && strstr(strTy->getName().data(), "sampler"))
+ if (!strTy->isLiteral() && strTy->getName().data() &&
+ strstr(strTy->getName().data(), "sampler"))
type = Type::getInt32Ty(value->getContext());
}
}
--
2.7.4
More information about the Beignet
mailing list