From 79fd6ae01b4191cba21a3cdb7ebe3d0248d38f18 Mon Sep 17 00:00:00 2001 From: Georg Lehmann Date: Wed, 28 Feb 2024 17:34:59 +0100 Subject: [PATCH] aco/post-ra: assume scc is going to be overwritten by phis at end of blocks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: mesa-stable Reviewed-by: Timur Kristóf Reviewed-by: Daniel Schürmann Part-of: (cherry picked from commit bd93e8372d0fdcbdfba66faf7d037b08a5efa473) --- .pick_status.json | 2 +- src/amd/compiler/aco_optimizer_postRA.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 874a33c09c1..09e28145b86 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -984,7 +984,7 @@ "description": "aco/post-ra: assume scc is going to be overwritten by phis at end of blocks", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/amd/compiler/aco_optimizer_postRA.cpp b/src/amd/compiler/aco_optimizer_postRA.cpp index 5ae59dad2ce..e56c36e0cce 100644 --- a/src/amd/compiler/aco_optimizer_postRA.cpp +++ b/src/amd/compiler/aco_optimizer_postRA.cpp @@ -748,6 +748,12 @@ optimize_postRA(Program* program) for (aco_ptr& instr : block.instructions) process_instruction(ctx, instr); + + /* SCC might get overwritten by copies or swaps from parallelcopies + * inserted by SSA-elimination for linear phis. + */ + if (!block.scc_live_out) + ctx.instr_idx_by_regs[block.index][scc] = overwritten_unknown_instr; } /* Cleanup pass