[Beignet] [patch v2] don't merge serial blocks with barrier.

xionghu.luo at intel.com xionghu.luo at intel.com
Mon Jun 29 19:37:21 PDT 2015


From: Luo Xionghu <xionghu.luo at intel.com>

this could fix the piglit and opencv fail on IVB_x86 platform.
1) opencv_test_core/OCL_Arithm/CountNonZero
2) opencv_test_core/OCL_Arithm/MeanStdDev
3) piglit case program/execute/atomic_cmpxchg-local.
v2: update comments: As our barrier implementation doen't support
structured barrier operation, exclude all the barrier blocks from
serialPatternMatch.

Signed-off-by: Luo Xionghu <xionghu.luo at intel.com>
---
 backend/src/ir/structurizer.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/backend/src/ir/structurizer.cpp b/backend/src/ir/structurizer.cpp
index cb8e11b..82bb56b 100644
--- a/backend/src/ir/structurizer.cpp
+++ b/backend/src/ir/structurizer.cpp
@@ -738,7 +738,9 @@ namespace ir {
       return 0;
 
     Block *childBlk = *block->succ_begin();
-    if (childBlk->pred_size() != 1 )
+    //FIXME, As our barrier implementation doen't support structured barrier
+    //operation, exclude all the barrier blocks from serialPatternMatch.
+    if (childBlk->pred_size() != 1 || childBlk->hasBarrier() )
       return 0;
 
     BlockList serialBBs;//childBBs
-- 
1.9.1



More information about the Beignet mailing list