From: Alyssa Rosenzweig Date: Tue, 29 Dec 2020 22:21:37 +0000 (-0500) Subject: pan/bi: Add bi_{before,after}_clause cursors X-Git-Tag: upstream/21.2.3~8763 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ec0d0426d6d381df685f7cdd72b9f6103e7ad680;p=platform%2Fupstream%2Fmesa.git pan/bi: Add bi_{before,after}_clause cursors Will be needed to insert spill code after scheduling once we have multiple instructions in a clause. Signed-off-by: Alyssa Rosenzweig Reviewed-by: Boris Brezillon Part-of: --- diff --git a/src/panfrost/bifrost/compiler.h b/src/panfrost/bifrost/compiler.h index db8da72..744cddf 100644 --- a/src/panfrost/bifrost/compiler.h +++ b/src/panfrost/bifrost/compiler.h @@ -785,6 +785,32 @@ bi_after_instr(bi_instr *instr) }; } +static inline bi_instr * +bi_first_instr_in_clause(bi_clause *clause) +{ + bi_bundle bundle = clause->bundles[0]; + return bundle.fma ?: bundle.add; +} + +static inline bi_instr * +bi_last_instr_in_clause(bi_clause *clause) +{ + bi_bundle bundle = clause->bundles[clause->bundle_count - 1]; + return bundle.add ?: bundle.fma; +} + +static inline bi_cursor +bi_before_clause(bi_clause *clause) +{ + return bi_before_instr(bi_first_instr_in_clause(clause)); +} + +static inline bi_cursor +bi_after_clause(bi_clause *clause) +{ + return bi_after_instr(bi_last_instr_in_clause(clause)); +} + /* IR builder in terms of cursor infrastructure */ typedef struct {