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: [email protected]
Cc: Pan, Xiuli <[email protected]>
Subject: [PATCH] Backend: Fix llvm40 assert about literal structs

From: Pan Xiuli <[email protected]>

In llvm literal structs have no name, so check it first.

Signed-off-by: Pan Xiuli <[email protected]>
---
 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

_______________________________________________
Beignet mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to