aco/sched_ilp: continue open clauses

Foz-DB GFX1150:
Totals from 13789 (17.37% of 79395) affected shaders:
Instrs: 16567395 -> 16570832 (+0.02%); split: -0.03%, +0.05%
CodeSize: 85737492 -> 85751072 (+0.02%); split: -0.02%, +0.04%
Latency: 140988872 -> 140831767 (-0.11%); split: -0.12%, +0.01%
InvThroughput: 29639206 -> 29614890 (-0.08%); split: -0.09%, +0.00%
VClause: 347065 -> 343779 (-0.95%); split: -0.96%, +0.01%
SClause: 424881 -> 418657 (-1.46%); split: -1.48%, +0.02%

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Daniel Schürmann <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33111>
This commit is contained in:
Georg Lehmann 2025-01-19 12:03:02 +01:00 committed by Marge Bot
parent 997ea2e273
commit ea514e9385

View file

@ -543,11 +543,16 @@ select_instruction_ilp(const SchedILPContext& ctx)
{
mask_t mask = ctx.active_mask;
/* First, collect all dependencies of the next non-reorderable instruction(s).
/* First, continue the currently open clause.
* Otherwise collect all dependencies of the next non-reorderable instruction(s).
* These make up the list of possible candidates.
*/
if (ctx.next_non_reorderable != UINT8_MAX)
if (ctx.next_non_reorderable != UINT8_MAX) {
if (ctx.prev_info.instr && ctx.nodes[ctx.next_non_reorderable].dependency_mask == 0 &&
should_form_clause(ctx.prev_info.instr, ctx.nodes[ctx.next_non_reorderable].instr))
return ctx.next_non_reorderable;
mask = collect_clause_dependencies(ctx, ctx.next_non_reorderable, 0);
}
/* If the next non-reorderable instruction has no dependencies, select it */
if (mask == 0)