Dave just told me on IRC about the SPIR-V opt discussion:

https://github.com/KhronosGroup/SPIRV-Tools/issues/850

Assuming this actually solves the problem,

Reviewed-by: Jason Ekstrand <[email protected]>

I would like to see CTS tests written for this and we had better die
horribly without this patch and pass with it. :-)

--Jason

On Sun, Oct 1, 2017 at 3:37 PM, Bas Nieuwenhuizen <[email protected]>
wrote:

> Per the SPIR-V spec 2.11 Structured Control Flow:
>
> "The only blocks in a construct that can branch outside the construct are
>
> ...
> - a break block for the innermost loop it is inside of.
> ..."
>
> With
>
> "Break block: A block containing a branch to the Merge Block of a loop
> header's merge instruction."
>
> Note that it puts no restriction on not being in an if or switch within
> the innermost loop.
>
> This passes the loop_break block to the switch body so it can properly
> detect loop breaks.
>
> CC: <[email protected]>
> ---
>  src/compiler/spirv/vtn_cfg.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/compiler/spirv/vtn_cfg.c b/src/compiler/spirv/vtn_cfg.c
> index 3ad20b9ad83..25ff254bcec 100644
> --- a/src/compiler/spirv/vtn_cfg.c
> +++ b/src/compiler/spirv/vtn_cfg.c
> @@ -435,7 +435,7 @@ vtn_cfg_walk_blocks(struct vtn_builder *b, struct
> list_head *cf_list,
>           list_for_each_entry(struct vtn_case, cse, &swtch->cases, link) {
>              assert(cse->start_block != break_block);
>              vtn_cfg_walk_blocks(b, &cse->body, cse->start_block, cse,
> -                                break_block, NULL, loop_cont, NULL);
> +                                break_block, loop_break, loop_cont, NULL);
>           }
>
>           /* Finally, we walk over all of the cases one more time and put
> --
> 2.14.1
>
> _______________________________________________
> mesa-dev mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to