[Mesa-dev] [PATCH] nir: add support for structured COME FROM

Francisco Jerez currojerez at riseup.net
Wed Apr 1 09:59:35 PDT 2015


Connor Abbott <cwabbott0 at gmail.com> writes:

> Unfortunately, we can't support unstructured COME FROM yet, since we
> can't structurize arbitrary control flow graphs. Also TODO is adding
> support for threading by having multiple come_from's point to the same
> unconditional branch, as well as various other INTERCAL features.
>

I believe what we are really badly missing is a
call-with-current-continuation opcode, COME FROM or any other obscure
control flow construct of your choice will become a straightforward
special case.  Please fix!

> Signed-off-by: Connor Abbott <cwabbott0 at gmail.com>
> ---
>  src/glsl/nir/nir_print.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/src/glsl/nir/nir_print.c b/src/glsl/nir/nir_print.c
> index fa11a31..2086e21 100644
> --- a/src/glsl/nir/nir_print.c
> +++ b/src/glsl/nir/nir_print.c
> @@ -655,12 +655,10 @@ print_block(nir_block *block, print_var_state *state, unsigned tabs, FILE *fp)
>     qsort(preds, block->predecessors->entries, sizeof(nir_block *),
>           compare_block_index);
>  
> -   print_tabs(tabs, fp);
> -   fprintf(fp, "/* preds: ");
>     for (unsigned i = 0; i < block->predecessors->entries; i++) {
> -      fprintf(fp, "block_%u ", preds[i]->index);
> +      print_tabs(tabs, fp);
> +      fprintf(fp, "come_from %u\n", preds[i]->index);
>     }
> -   fprintf(fp, "*/\n");
>  
>     free(preds);
>  
> -- 
> 2.1.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 212 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150401/a85e8a95/attachment.sig>


More information about the mesa-dev mailing list