Mesa (main): pan/bi: Add scoreboard state to IR

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Feb 22 17:10:15 UTC 2022


Module: Mesa
Branch: main
Commit: 6ad9a7f650176f3db94546ef765b45bfbe919bb4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6ad9a7f650176f3db94546ef765b45bfbe919bb4

Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date:   Fri Feb 18 15:28:38 2022 -0500

pan/bi: Add scoreboard state to IR

To a limited degree, scoreboarding must be global, so add the data
structures for tracking this to the IR.

Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14298>

---

 src/panfrost/bifrost/compiler.h | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/panfrost/bifrost/compiler.h b/src/panfrost/bifrost/compiler.h
index 88cb252a520..86a8548c3dc 100644
--- a/src/panfrost/bifrost/compiler.h
+++ b/src/panfrost/bifrost/compiler.h
@@ -617,6 +617,15 @@ typedef struct {
         bool td;
 } bi_clause;
 
+#define BI_NUM_SLOTS 8
+
+/* A model for the state of the scoreboard */
+struct bi_scoreboard_state {
+        /** Bitmap of registers read/written by a slot */
+        uint64_t read[BI_NUM_SLOTS];
+        uint64_t write[BI_NUM_SLOTS];
+};
+
 typedef struct bi_block {
         /* Link to next block. Must be first for mir_get_block */
         struct list_head link;
@@ -643,6 +652,9 @@ typedef struct bi_block {
         /* Post-RA liveness */
         uint64_t reg_live_in, reg_live_out;
 
+        /* Scoreboard state at the start/end of block */
+        struct bi_scoreboard_state scoreboard_in, scoreboard_out;
+
         /* Flags available for pass-internal use */
         uint8_t pass_flags;
 } bi_block;



More information about the mesa-commit mailing list