From 7de003473cca40e36b8116a39b9457a371fc10fc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Sch=C3=BCrmann?= Date: Wed, 25 Mar 2020 12:15:54 +0100 Subject: [PATCH] aco: fix Temp and assignment of renamed operands during RA MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Rhys Perry Reviewed-By: Timur Kristóf Part-of: --- src/amd/compiler/aco_register_allocation.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/amd/compiler/aco_register_allocation.cpp b/src/amd/compiler/aco_register_allocation.cpp index 1a67751..9dad429 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); } -- 2.7.4