agx: Split nest instruction into begin_cf + break

We use it for two different things. Pseudo-instructions are cheap, split it up
for easier optimization passes. This also fixes the schedule classes.. we can
move the cf_begin around if we want, it's inert.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25052>
This commit is contained in:
Alyssa Rosenzweig
2023-08-29 14:57:44 -04:00
committed by Marge Bot
parent b89c048c9b
commit ff816f224b
4 changed files with 14 additions and 10 deletions

View File

@@ -1752,10 +1752,7 @@ agx_emit_jump(agx_builder *b, nir_jump_instr *instr)
agx_block_add_successor(ctx->current_block, ctx->break_block);
}
/* Update the counter and flush */
agx_nest(b, nestings);
agx_pop_exec(b, 0);
agx_break(b, nestings);
ctx->current_block->unconditional_jumps = true;
}
@@ -1999,7 +1996,7 @@ emit_first_cf(agx_context *ctx)
return;
agx_builder _b = agx_init_builder(ctx, agx_after_block(ctx->current_block));
agx_nest(&_b, 0);
agx_begin_cf(&_b);
ctx->any_cf = true;
}