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 <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
This commit is contained in:
Alyssa Rosenzweig 2020-12-29 17:21:37 -05:00 committed by Marge Bot
parent 3ce67cb0d9
commit ec0d0426d6
1 changed files with 26 additions and 0 deletions

View File

@ -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 {