From: Luo Xionghu <[email protected]> self loop header should have a successor to itself, check this before merge. this could fix Opencv case opencv_perf_imgproc/OCL_CvtColorFixture_CvtColor causes GPU hang.
Signed-off-by: Luo Xionghu <[email protected]> --- backend/src/ir/structurizer.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/src/ir/structurizer.cpp b/backend/src/ir/structurizer.cpp index 82bb56b..6c4e455 100644 --- a/backend/src/ir/structurizer.cpp +++ b/backend/src/ir/structurizer.cpp @@ -812,6 +812,13 @@ namespace ir { if(loopBBs.empty()) return 0; + if(loopSets.size() == 1) { + //self loop header should have a successor to itself, check this before merged. + Block* lblock = *loopSets.begin(); + if(lblock->successors().find(lblock) == lblock->successors().end()) + return 0; + } + Block* mergedBB = mergeLoopBlock(loopBBs); if(mergedBB == NULL) return 0; -- 1.9.1 _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
