diff options
author | Neil Roberts <[email protected]> | 2015-10-05 13:50:56 +0200 |
---|---|---|
committer | Neil Roberts <[email protected]> | 2015-10-09 15:13:22 +0200 |
commit | 728d7bc85f1f101875349690bf1637037a5a1817 (patch) | |
tree | c4fb36a06355d1e402cba90d0fedda6c6e47b541 | |
parent | 886d46b0897182e489e03f7302a575b54004faca (diff) |
i965: Add a second successor to BRW_OPCODE_WHILE
It is possible to directly predicate the WHILE instruction. In this
case there will be a second successor block because the execution can
resume from the instruction after the loop. This will be used in a
subsequent patch.
Reviewed-by: Matt Turner <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_cfg.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_cfg.cpp b/src/mesa/drivers/dri/i965/brw_cfg.cpp index 91d53eff5a7..531fa16b387 100644 --- a/src/mesa/drivers/dri/i965/brw_cfg.cpp +++ b/src/mesa/drivers/dri/i965/brw_cfg.cpp @@ -305,6 +305,10 @@ cfg_t::cfg_t(exec_list *instructions) assert(cur_do != NULL && cur_while != NULL); cur->add_successor(mem_ctx, cur_do); + + if (inst->predicate) + cur->add_successor(mem_ctx, cur_while); + set_next_block(&cur, cur_while, ip); /* Pop the stack so we're in the previous loop */ |