From 4491b94d58e474b479dd5e0db772dbf30d292548 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timur=20Krist=C3=B3f?= Date: Wed, 25 Nov 2020 19:53:51 +0100 Subject: [PATCH] aco: Don't DCE instructions that write non-temps, eg. exec. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit No Fossil DB changes. This commit makes DCE usable after RA. Signed-off-by: Timur Kristóf Reviewed-by: Daniel Schürmann Part-of: --- src/amd/compiler/aco_dead_code_analysis.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/amd/compiler/aco_dead_code_analysis.cpp b/src/amd/compiler/aco_dead_code_analysis.cpp index b6203d5..80b4696 100644 --- a/src/amd/compiler/aco_dead_code_analysis.cpp +++ b/src/amd/compiler/aco_dead_code_analysis.cpp @@ -82,7 +82,7 @@ bool is_dead(const std::vector& uses, Instruction *instr) if (instr->definitions.empty() || instr->isBranch()) return false; if (std::any_of(instr->definitions.begin(), instr->definitions.end(), - [&uses] (const Definition& def) { return uses[def.tempId()];})) + [&uses] (const Definition& def) { return !def.isTemp() || uses[def.tempId()];})) return false; return !(get_sync_info(instr).semantics & (semantic_volatile | semantic_acqrel)); } -- 2.7.4