[Beignet] [PATCH] Backend: Fix llvm40 assert about literal structs
Pan, Xiuli
xiuli.pan at intel.com
Wed May 17 07:14:53 UTC 2017
Ping for review.
If llvm is debug version will cause assert for device enqueue cases.
-----Original Message-----
From: Pan, Xiuli
Sent: Tuesday, April 25, 2017 13:27
To: beignet at lists.freedesktop.org
Cc: Pan, Xiuli <xiuli.pan at intel.com>
Subject: [PATCH] Backend: Fix llvm40 assert about literal structs
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