From 0dc4cabee213135aa25bef9062366f251838dc16 Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Fri, 2 Sep 2016 19:06:52 -0400 Subject: nir: add nir_after_phis() cursor helper And re-implement nir_after_cf_node_and_phis() using it. Reviewed-by: Kenneth Graunke Reviewed-by: Jason Ekstrand --- src/compiler/nir/nir.h | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/compiler/nir/nir.h') diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index d0dfb0d04b3..6852551cc45 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -1758,6 +1758,9 @@ typedef struct nir_shader_compiler_options { * information must be inferred from the list of input nir_variables. */ bool use_interpolated_input_intrinsics; + + bool lower_b2dx; + bool lower_b2i; } nir_shader_compiler_options; typedef struct nir_shader_info { @@ -2107,6 +2110,16 @@ nir_after_cf_node(nir_cf_node *node) return nir_before_block(nir_cf_node_as_block(nir_cf_node_next(node))); } +static inline nir_cursor +nir_after_phis(nir_block *block) +{ + nir_foreach_instr(instr, block) { + if (instr->type != nir_instr_type_phi) + return nir_before_instr(instr); + } + return nir_after_block(block); +} + static inline nir_cursor nir_after_cf_node_and_phis(nir_cf_node *node) { @@ -2116,11 +2129,7 @@ nir_after_cf_node_and_phis(nir_cf_node *node) nir_block *block = nir_cf_node_as_block(nir_cf_node_next(node)); assert(block->cf_node.type == nir_cf_node_block); - nir_foreach_instr(instr, block) { - if (instr->type != nir_instr_type_phi) - return nir_before_instr(instr); - } - return nir_after_block(block); + return nir_after_phis(block); } static inline nir_cursor -- cgit v1.2.3