From: Daniel Schürmann Date: Wed, 25 Mar 2020 11:15:54 +0000 (+0100) Subject: aco: fix Temp and assignment of renamed operands during RA X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7de003473cca40e36b8116a39b9457a371fc10fc;p=mesa.git aco: fix Temp and assignment of renamed operands during RA Reviewed-by: Rhys Perry Reviewed-By: Timur Kristóf Part-of: --- diff --git a/src/amd/compiler/aco_register_allocation.cpp b/src/amd/compiler/aco_register_allocation.cpp index 1a6775121fe..9dad4291347 100644 --- a/src/amd/compiler/aco_register_allocation.cpp +++ b/src/amd/compiler/aco_register_allocation.cpp @@ -1492,10 +1492,11 @@ void register_allocation(Program *program, std::vector> live_out_ pc_op.setFixed(reg); PhysReg new_reg = get_reg(ctx, register_file, operand.regClass(), parallelcopy, instr); Definition pc_def = Definition(program->allocateId(), new_reg, pc_op.regClass()); - ctx.assignments[pc_def.tempId()] = {reg, pc_def.regClass()}; + ctx.assignments[pc_def.tempId()] = {new_reg, pc_def.regClass()}; register_file.clear(pc_op); register_file.fill(pc_def); parallelcopy.emplace_back(pc_op, pc_def); + operand.setTemp(pc_def.getTemp()); operand.setFixed(new_reg); }