From b4e0850ef75cbf4f3e3a2340f4ee4c654a81d604 Mon Sep 17 00:00:00 2001 From: Jeremy Hayes Date: Fri, 24 Mar 2023 10:46:52 -0600 Subject: [PATCH] Ignore NonSemanticInstructions (#5171) Fix #5163. Ignore NonSemanticInstructions in DoDeadOutputStoresElimination and ComputeLiveness. --- source/opt/eliminate_dead_output_stores_pass.cpp | 2 +- source/opt/liveness.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/opt/eliminate_dead_output_stores_pass.cpp b/source/opt/eliminate_dead_output_stores_pass.cpp index f2f64f812..99711a16e 100644 --- a/source/opt/eliminate_dead_output_stores_pass.cpp +++ b/source/opt/eliminate_dead_output_stores_pass.cpp @@ -219,7 +219,7 @@ Pass::Status EliminateDeadOutputStoresPass::DoDeadOutputStoreElimination() { var_id, [this, &var, is_builtin](Instruction* user) { auto op = user->opcode(); if (op == spv::Op::OpEntryPoint || op == spv::Op::OpName || - op == spv::Op::OpDecorate) + op == spv::Op::OpDecorate || user->IsNonSemanticInstruction()) return; if (is_builtin) KillAllDeadStoresOfBuiltinRef(user, &var); diff --git a/source/opt/liveness.cpp b/source/opt/liveness.cpp index fdf3f4e11..336f3ae52 100644 --- a/source/opt/liveness.cpp +++ b/source/opt/liveness.cpp @@ -309,7 +309,7 @@ void LivenessManager::ComputeLiveness() { def_use_mgr->ForEachUser(var_id, [this, &var](Instruction* user) { auto op = user->opcode(); if (op == spv::Op::OpEntryPoint || op == spv::Op::OpName || - op == spv::Op::OpDecorate) { + op == spv::Op::OpDecorate || user->IsNonSemanticInstruction()) { return; } MarkRefLive(user, &var);