mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-02 05:48:07 +02:00
ir3/sched: Don't schedule collect early
I don't think there was ever a good reason to do this, but when we start folding constants/immediates into collect, this can become actively harmful. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9842>
This commit is contained in:
parent
27593cb241
commit
8b15c2f30c
1 changed files with 10 additions and 1 deletions
|
|
@ -746,7 +746,16 @@ choose_instr_prio(struct ir3_sched_ctx *ctx, struct ir3_sched_notes *notes)
|
|||
struct ir3_sched_node *chosen = NULL;
|
||||
|
||||
foreach_sched_node (n, &ctx->dag->heads) {
|
||||
if (!is_meta(n->instr))
|
||||
/*
|
||||
* - phi nodes and inputs must be scheduled first
|
||||
* - split should be scheduled first, so that the vector value is
|
||||
* killed as soon as possible. RA cannot split up the vector and
|
||||
* reuse components that have been killed until it's been killed.
|
||||
* - collect, on the other hand, should be treated as a "normal"
|
||||
* instruction, and may add to register pressure if its sources are
|
||||
* part of another vector or immediates.
|
||||
*/
|
||||
if (!is_meta(n->instr) || n->instr->opc == OPC_META_COLLECT)
|
||||
continue;
|
||||
|
||||
if (!chosen || (chosen->max_delay < n->max_delay))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue