From 79c1af062341266d7ad64a0ac221394d6cbfdfdc Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 6 Mar 2020 09:26:20 -0500 Subject: [PATCH] pan/bi: Add bi_schedule_barrier helper Copypaste from Midgard. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/bifrost/bifrost_compile.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c index 6be08947d78..6a57adc4e53 100644 --- a/src/panfrost/bifrost/bifrost_compile.c +++ b/src/panfrost/bifrost/bifrost_compile.c @@ -39,6 +39,7 @@ static bi_block *emit_cf_list(bi_context *ctx, struct exec_list *list); static bi_instruction *bi_emit_branch(bi_context *ctx); static void bi_block_add_successor(bi_block *block, bi_block *successor); +static void bi_schedule_barrier(bi_context *ctx); static void emit_jump(bi_context *ctx, nir_jump_instr *instr) @@ -180,6 +181,18 @@ bi_block_add_successor(bi_block *block, bi_block *successor) unreachable("Too many successors"); } +static void +bi_schedule_barrier(bi_context *ctx) +{ + bi_block *temp = ctx->after_block; + ctx->after_block = create_empty_block(ctx); + list_addtail(&ctx->after_block->link, &ctx->blocks); + list_inithead(&ctx->after_block->instructions); + bi_block_add_successor(ctx->current_block, ctx->after_block); + ctx->current_block = ctx->after_block; + ctx->after_block = temp; +} + static bi_block * emit_block(bi_context *ctx, nir_block *block) { -- 2.30.2