mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-11 02:40:39 +01:00
aco/ra: don't tie definition when the operand is in a preserved reg
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40225>
This commit is contained in:
parent
444eb3dce5
commit
d7348ea501
1 changed files with 3 additions and 3 deletions
|
|
@ -3533,6 +3533,8 @@ affinity_blocks_tied_def0(const ra_ctx& ctx, const RegisterFile& register_file,
|
|||
} else if (ctx.assignments[def_id].precolor_affinity) {
|
||||
if (ctx.assignments[def_id].reg != instr->operands[op_idx].physReg())
|
||||
return true;
|
||||
} else if (BITSET_TEST(ctx.preserved, instr->operands[op_idx].physReg())) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
@ -4250,9 +4252,7 @@ register_allocation(Program* program, ra_test_policy policy)
|
|||
* different location due to affinity, but that gets complicated very quickly. */
|
||||
definition->setFixed(instr->operands[2].physReg());
|
||||
} else if (dot2_can_use_vopd(ctx, instr.get()) &&
|
||||
!affinity_blocks_tied_def0(ctx, register_file, instr.get(), 2) &&
|
||||
get_reg_specified(ctx, register_file, definition->regClass(), instr,
|
||||
instr->operands[2].physReg(), -1)) {
|
||||
!affinity_blocks_tied_def0(ctx, register_file, instr.get(), 2)) {
|
||||
definition->setFixed(instr->operands[2].physReg());
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue