pan/bi: Add instruction emit/remove helpers
As we start descending into code generation these will be of interest.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4097>
diff --git a/src/panfrost/bifrost/compiler.h b/src/panfrost/bifrost/compiler.h
index 2b390c1..d57bdc2 100644
--- a/src/panfrost/bifrost/compiler.h
+++ b/src/panfrost/bifrost/compiler.h
@@ -324,10 +324,26 @@
/* During NIR->BIR */
bi_block *current_block;
unsigned block_name_count;
+ bi_block *after_block;
/* Stats for shader-db */
unsigned instruction_count;
-} bi_context;
+} bi_context;
+
+static inline bi_instruction *
+bi_emit(bi_context *ctx, bi_instruction ins)
+{
+ bi_instruction *u = rzalloc(ctx, bi_instruction);
+ memcpy(u, &ins, sizeof(ins));
+ list_addtail(&u->link, &ctx->current_block->instructions);
+ return u;
+}
+
+static inline void
+bi_remove_instruction(bi_instruction *ins)
+{
+ list_del(&ins->link);
+}
/* So we can distinguish between SSA/reg/sentinel quickly */
#define BIR_NO_ARG (0)