diff options
author | Connor Abbott <[email protected]> | 2016-09-02 19:06:52 -0400 |
---|---|---|
committer | Connor Abbott <[email protected]> | 2016-09-03 00:37:48 -0400 |
commit | 0dc4cabee213135aa25bef9062366f251838dc16 (patch) | |
tree | d2b7a55d0b85a4d330a531532d060ded48e3214a | |
parent | 64a69059ce2a506fd9d230a2494485cf8e13f163 (diff) |
nir: add nir_after_phis() cursor helper
And re-implement nir_after_cf_node_and_phis() using it.
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
-rw-r--r-- | src/compiler/nir/nir.h | 19 |
1 files changed, 14 insertions, 5 deletions
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 { @@ -2108,6 +2111,16 @@ nir_after_cf_node(nir_cf_node *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) { if (node->type == nir_cf_node_block) @@ -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 |