[Mesa-dev] [PATCH] nir: Use !block_ends_in_jump() in a few places rather than open-coding.

Jason Ekstrand jason at jlekstrand.net
Mon Aug 24 14:23:31 PDT 2015


R-B

On Mon, Aug 24, 2015 at 1:39 PM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> Connor introduced this helper recently; we should use it here too.
>
> I had to move the function earlier in the file for it to be available.
>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
>  src/glsl/nir/nir_control_flow.c | 21 +++++++++------------
>  1 file changed, 9 insertions(+), 12 deletions(-)
>
> diff --git a/src/glsl/nir/nir_control_flow.c b/src/glsl/nir/nir_control_flow.c
> index 86c7ca2..5c03375 100644
> --- a/src/glsl/nir/nir_control_flow.c
> +++ b/src/glsl/nir/nir_control_flow.c
> @@ -47,6 +47,13 @@
>   */
>  /*@{*/
>
> +static bool
> +block_ends_in_jump(nir_block *block)
> +{
> +   return !exec_list_is_empty(&block->instr_list) &&
> +          nir_block_last_instr(block)->type == nir_instr_type_jump;
> +}
> +
>  static inline void
>  block_add_pred(nir_block *block, nir_block *pred)
>  {
> @@ -111,14 +118,12 @@ link_non_block_to_block(nir_cf_node *node, nir_block *block)
>        assert(last_else->type == nir_cf_node_block);
>        nir_block *last_else_block = nir_cf_node_as_block(last_else);
>
> -      if (exec_list_is_empty(&last_then_block->instr_list) ||
> -          nir_block_last_instr(last_then_block)->type != nir_instr_type_jump) {
> +      if (!block_ends_in_jump(last_then_block)) {
>           unlink_block_successors(last_then_block);
>           link_blocks(last_then_block, block, NULL);
>        }
>
> -      if (exec_list_is_empty(&last_else_block->instr_list) ||
> -          nir_block_last_instr(last_else_block)->type != nir_instr_type_jump) {
> +      if (!block_ends_in_jump(last_else_block)) {
>           unlink_block_successors(last_else_block);
>           link_blocks(last_else_block, block, NULL);
>        }
> @@ -294,14 +299,6 @@ move_successors(nir_block *source, nir_block *dest)
>     link_blocks(dest, succ1, succ2);
>  }
>
> -static bool
> -block_ends_in_jump(nir_block *block)
> -{
> -   return !exec_list_is_empty(&block->instr_list) &&
> -          nir_block_last_instr(block)->type == nir_instr_type_jump;
> -}
> -
> -
>  /* Given a basic block with no successors that has been inserted into the
>   * control flow tree, gives it the successors it would normally have assuming
>   * it doesn't end in a jump instruction. Also inserts phi sources with undefs
> --
> 2.5.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list