[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