mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 11:00:11 +01:00
aco/spill: Invert reloads map
So we can quickly look up if an operand was reloaded without having to check renames. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29730>
This commit is contained in:
parent
39413ef78f
commit
ca7ce1fb33
1 changed files with 2 additions and 2 deletions
|
|
@ -909,7 +909,7 @@ process_block(spill_ctx& ctx, unsigned block_idx, Block* block, RegisterDemand s
|
|||
/* the Operand is spilled: add it to reloads */
|
||||
Temp new_tmp = ctx.program->allocateTmp(op.regClass());
|
||||
ctx.renames[block_idx][op.getTemp()] = new_tmp;
|
||||
reloads[new_tmp] = std::make_pair(op.getTemp(), current_spills[op.getTemp()]);
|
||||
reloads[op.getTemp()] = std::make_pair(new_tmp, current_spills[op.getTemp()]);
|
||||
current_spills.erase(op.getTemp());
|
||||
spilled_registers -= new_tmp;
|
||||
}
|
||||
|
|
@ -1007,7 +1007,7 @@ process_block(spill_ctx& ctx, unsigned block_idx, Block* block, RegisterDemand s
|
|||
/* add reloads and instruction to new instructions */
|
||||
for (std::pair<const Temp, std::pair<Temp, uint32_t>>& pair : reloads) {
|
||||
aco_ptr<Instruction> reload =
|
||||
do_reload(ctx, pair.second.first, pair.first, pair.second.second);
|
||||
do_reload(ctx, pair.first, pair.second.first, pair.second.second);
|
||||
instructions.emplace_back(std::move(reload));
|
||||
}
|
||||
instructions.emplace_back(std::move(instr));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue