From 25da85880e1cdeffa070e395ca5de8c08b9ea2ed Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 19 Feb 2021 09:17:48 -0500 Subject: [PATCH] pan/bi: Mark branches as having side effects Signed-off-by: Alyssa Rosenzweig Reviewed-by: Boris Brezillon Part-of: --- src/panfrost/bifrost/bir.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/panfrost/bifrost/bir.c b/src/panfrost/bifrost/bir.c index aa5bf876996..93d51e60796 100644 --- a/src/panfrost/bifrost/bir.c +++ b/src/panfrost/bifrost/bir.c @@ -138,12 +138,17 @@ bi_next_clause(bi_context *ctx, pan_block *block, bi_clause *clause) } /* Does an instruction have a side effect not captured by its register - * destination? Applies to certain message-passing instructions only, used in - * dead code elimation */ + * destination? Applies to certain message-passing instructions and branching + * only, used in dead code elimation. Branches are characterized by `last` + * which applies to them and some atomics, +BARRIER, +BLEND which implies no + * loss of generality */ bool bi_side_effects(enum bi_opcode op) { + if (bi_opcode_props[op].last) + return true; + switch (bi_opcode_props[op].message) { case BIFROST_MESSAGE_NONE: case BIFROST_MESSAGE_VARYING: