intel/ir: Represent physical edge of unconditional CONTINUE instruction.
authorFrancisco Jerez <currojerez@riseup.net>
Fri, 27 Sep 2019 21:50:00 +0000 (14:50 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Fri, 11 Oct 2019 19:24:16 +0000 (12:24 -0700)
This edge doesn't exist in the original scalar program, but it
represents a potential control flow path the EU will take in cases
where control flow isn't uniform across channels of the same SIMD
thread.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
src/intel/compiler/brw_cfg.cpp

index d5e0a08c74cd257b33b7219a8142d1025feb6133..87a423d998f81911e6ab5178acf61a9c82d99694 100644 (file)
@@ -334,6 +334,8 @@ cfg_t::cfg_t(exec_list *instructions)
         next = new_block();
         if (inst->predicate)
             cur->add_successor(mem_ctx, next, bblock_link_logical);
+         else
+            cur->add_successor(mem_ctx, next, bblock_link_physical);
 
         set_next_block(&cur, next, ip);
         break;