aco/ra: fix repeated compact_linear_vgprs() in get_reg()
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: b7738de4f9 ("aco/ra: rework linear VGPR allocation")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13431
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35838>
This commit is contained in:
@@ -1934,12 +1934,14 @@ get_reg(ra_ctx& ctx, const RegisterFile& reg_file, Temp temp,
|
||||
compact_linear_vgprs(ctx, reg_file, pc)) {
|
||||
parallelcopies.insert(parallelcopies.end(), pc.begin(), pc.end());
|
||||
|
||||
/* We don't need to fill the copy definitions in because we don't care about the linear VGPR
|
||||
* space here. */
|
||||
RegisterFile tmp_file(reg_file);
|
||||
for (parallelcopy& copy : pc)
|
||||
tmp_file.clear(copy.op);
|
||||
|
||||
/* Block these registers in case we try compacting linear VGPRs in the recursive get_reg(). */
|
||||
for (parallelcopy& copy : pc)
|
||||
tmp_file.block(copy.def.physReg(), copy.def.regClass());
|
||||
|
||||
return get_reg(ctx, tmp_file, temp, parallelcopies, instr, operand_index);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user