diff options
author | Zhigang Gong <zhigang.gong@intel.com> | 2015-08-13 10:24:17 +0800 |
---|---|---|
committer | Yang Rong <rong.r.yang@intel.com> | 2015-08-27 15:07:16 +0800 |
commit | d43338b1bb04be2e29a5e5dc37fd1146a5c92375 (patch) | |
tree | afed3d9b41cde20d71e092c47b104408ecdaf62b | |
parent | e9ddab97f3f6cdd508f02b11123fd234d3203b81 (diff) |
GBE: a potential bug in instruction scheduling.
ENDIF should be treated as barrier-like instruction
in instruction scheduling.
Signed-off-by: Zhigang Gong <zhigang.gong@intel.com>
Reviewed-by: Luo, Xionghu <xionghu.luo@intel.com>
-rw-r--r-- | backend/src/backend/gen_insn_scheduling.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
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); |