From 3a8477f1b0c2f947dbd1e294e94bfe58a2797b04 Mon Sep 17 00:00:00 2001 From: Zhigang Gong Date: Thu, 13 Aug 2015 10:24:17 +0800 Subject: GBE: a potential bug in instruction scheduling. ENDIF should be treated as barrier-like instruction in instruction scheduling. Signed-off-by: Zhigang Gong Reviewed-by: Luo, Xionghu --- backend/src/backend/gen_insn_scheduling.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/src/backend/gen_insn_scheduling.cpp b/backend/src/backend/gen_insn_scheduling.cpp index b3b70424..358a2ce3 100644 --- a/backend/src/backend/gen_insn_scheduling.cpp +++ b/backend/src/backend/gen_insn_scheduling.cpp @@ -583,7 +583,11 @@ namespace gbe for (int32_t insnID = 0; insnID < insnNum; ++insnID) { ScheduleDAGNode *node = tracker.insnNodes[insnID]; if (node->insn.isBranch() || node->insn.isLabel() - || node->insn.opcode == SEL_OP_EOT || node->insn.opcode == SEL_OP_IF || node->insn.opcode == SEL_OP_WHILE + || node->insn.opcode == SEL_OP_EOT + || node->insn.opcode == SEL_OP_IF + || node->insn.opcode == SEL_OP_ELSE + || node->insn.opcode == SEL_OP_ENDIF + || node->insn.opcode == SEL_OP_WHILE || node->insn.opcode == SEL_OP_READ_ARF || node->insn.opcode == SEL_OP_BARRIER) tracker.makeBarrier(insnID, insnNum); -- cgit v1.2.1