agx: track block divergence

conservative for now. we'll need this for correctness.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36399>
This commit is contained in:
Alyssa Rosenzweig
2025-07-31 08:35:36 -04:00
parent fc9f3363fa
commit d15bfdf0a7
2 changed files with 6 additions and 0 deletions
+3
View File
@@ -2560,6 +2560,9 @@ agx_create_block(agx_context *ctx)
{
agx_block *blk = rzalloc(ctx, agx_block);
/* This is conservative, TODO: divergence analysis */
blk->divergent = ctx->total_nesting > 0;
util_dynarray_init(&blk->predecessors, blk);
return blk;
+3
View File
@@ -452,6 +452,9 @@ typedef struct agx_block {
struct util_dynarray predecessors;
bool unconditional_jumps;
/* Could there be masked execution? */
bool divergent;
/* Liveness analysis results */
BITSET_WORD *live_in;
BITSET_WORD *live_out;