aco: Add call-related program/block properties

Indicates various properties about calls: Whether a program is an
indirect callee, whether a program or block contains function calls, and
whether registers used by a caller need to be preserved.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34531>
This commit is contained in:
Natalie Vock 2025-04-07 11:56:16 +02:00 committed by Marge Bot
parent 917a98b722
commit af812862b7
2 changed files with 7 additions and 0 deletions

View file

@ -2109,6 +2109,7 @@ enum block_kind {
block_kind_resume = 1 << 12,
block_kind_export_end = 1 << 13,
block_kind_end_with_regs = 1 << 14,
block_kind_contains_call = 1 << 15,
};
/* CFG */
@ -2320,6 +2321,10 @@ public:
bool should_repair_ssa = false;
bool is_callee = false;
bool has_call = false;
bool bypass_reg_preservation = false;
struct {
monotonic_buffer_resource memory;
/* live-in temps per block */

View file

@ -858,6 +858,8 @@ print_block_kind(uint16_t kind, FILE* output)
fprintf(output, "export_end, ");
if (kind & block_kind_end_with_regs)
fprintf(output, "end_with_regs, ");
if (kind & block_kind_contains_call)
fprintf(output, "contains_call, ");
}
static void