intel/brw: Record g0 as live for sends with send_ex_desc_scratch set

brw_send_indirect_split_message() implicitly reads g0 to construct the
extended message descriptor for certain send messages when this is set.

Record that liveness explicitly.

Thanks to Francisco Jerez for reminding me about this use of g0.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30319>
This commit is contained in:
Kenneth Graunke 2024-07-22 16:41:52 -07:00
parent 9200fb966c
commit 4ca4b064cf

View file

@ -220,6 +220,12 @@ void fs_visitor::calculate_payload_ranges(unsigned payload_node_count,
}
}
/* The generator implicitly uses g0 to construct extended message
* descriptors for scratch send messages when this bit is set.
*/
if (inst->send_ex_desc_scratch)
payload_last_use_ip[0] = use_ip;
if (inst->eot) {
/* We could omit this for the !inst->header_present case, except
* that the simulator apparently incorrectly reads from g0/g1