diff --git a/.pick_status.json b/.pick_status.json index 2ff84c8e483..bd7e29d4711 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -13,7 +13,7 @@ "description": "aco/spill: Fix spilling of Phi operands", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/amd/compiler/aco_spill.cpp b/src/amd/compiler/aco_spill.cpp index e712920f53e..38a5cf8d475 100644 --- a/src/amd/compiler/aco_spill.cpp +++ b/src/amd/compiler/aco_spill.cpp @@ -920,8 +920,10 @@ add_coupling_code(spill_ctx& ctx, Block* block, unsigned block_idx) pred.instructions[idx]->opcode != aco_opcode::p_logical_end); std::vector>::iterator it = std::next(pred.instructions.begin(), idx); pred.instructions.insert(it, std::move(spill)); + + /* Add the original name to predecessor's spilled variables */ if (spill_op.isTemp()) - ctx.spills_exit[pred_idx][spill_op.getTemp()] = spill_id; + ctx.spills_exit[pred_idx][phi->operands[i].getTemp()] = spill_id; } /* remove phi from instructions */