From fb27baa35acbcef4563d5ca96c53f7ccb305af93 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 6 Jan 2021 16:16:37 -0500 Subject: [PATCH] pan/bi: Add T0/T1 constraint check Not visible on real shaders yet, but it will be when we schedule out-of-order (or implement 64-bit multiplication). Signed-off-by: Alyssa Rosenzweig Reviewed-by: Boris Brezillon Part-of: --- src/panfrost/bifrost/bi_schedule.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/panfrost/bifrost/bi_schedule.c b/src/panfrost/bifrost/bi_schedule.c index c4f7f914d8f..b9ab2cbb283 100644 --- a/src/panfrost/bifrost/bi_schedule.c +++ b/src/panfrost/bifrost/bi_schedule.c @@ -650,6 +650,22 @@ bi_has_staging_passthrough_hazard(bi_index fma, bi_instr *add) return false; } +/* Likewise for cross-tuple passthrough (reads_temps) */ + +static bool +bi_has_cross_passthrough_hazard(bi_tuple *succ, bi_instr *ins) +{ + bi_foreach_instr_in_tuple(succ, pins) { + bi_foreach_src(pins, s) { + if (bi_is_word_equiv(ins->dest[0], pins->src[s]) && + !bi_reads_temps(pins, s)) + return true; + } + } + + return false; +} + #ifndef NDEBUG static bi_builder *