diff --git a/src/shader_recompiler/frontend/structured_control_flow.cpp b/src/shader_recompiler/frontend/structured_control_flow.cpp index b696106d9..bf5ba6bce 100644 --- a/src/shader_recompiler/frontend/structured_control_flow.cpp +++ b/src/shader_recompiler/frontend/structured_control_flow.cpp @@ -644,7 +644,7 @@ private: } case StatementType::SetVariable: { ensure_block(); - IR::IREmitter ir{*current_block, info}; + IR::IREmitter ir{*current_block}; ir.SetGotoVariable(stmt.id, VisitExpr(ir, *stmt.op)); break; } @@ -653,7 +653,7 @@ private: IR::Block* const merge_block{MergeBlock(parent, stmt)}; // Implement if header block - IR::IREmitter ir{*current_block, info}; + IR::IREmitter ir{*current_block}; const IR::U1 cond{ir.ConditionRef(VisitExpr(ir, *stmt.cond))}; const size_t if_node_index{syntax_list.size()}; @@ -703,7 +703,7 @@ private: Visit(stmt, merge_block, continue_block); // The continue block is located at the end of the loop - IR::IREmitter ir{*continue_block, info}; + IR::IREmitter ir{*continue_block}; const IR::U1 cond{ir.ConditionRef(VisitExpr(ir, *stmt.cond))}; IR::Block* const body_block{syntax_list.at(body_block_index).data.block}; @@ -739,7 +739,7 @@ private: ensure_block(); IR::Block* const skip_block{MergeBlock(parent, stmt)}; - IR::IREmitter ir{*current_block, info}; + IR::IREmitter ir{*current_block}; const IR::U1 cond{ir.ConditionRef(VisitExpr(ir, *stmt.cond))}; current_block->AddBranch(break_block); current_block->AddBranch(skip_block); @@ -759,7 +759,7 @@ private: case StatementType::Return: { ensure_block(); IR::Block* return_block{block_pool.Create(inst_pool)}; - IR::IREmitter{*return_block, info}.Epilogue(); + IR::IREmitter{*return_block}.Epilogue(); current_block->AddBranch(return_block); auto& merge{syntax_list.emplace_back()}; @@ -773,7 +773,7 @@ private: case StatementType::Kill: { ensure_block(); IR::Block* demote_block{MergeBlock(parent, stmt)}; - IR::IREmitter{*current_block, info}.Discard(); + IR::IREmitter{*current_block}.Discard(); current_block->AddBranch(demote_block); current_block = demote_block; diff --git a/src/shader_recompiler/frontend/translate/translate.cpp b/src/shader_recompiler/frontend/translate/translate.cpp index bf5397427..cfef5858a 100644 --- a/src/shader_recompiler/frontend/translate/translate.cpp +++ b/src/shader_recompiler/frontend/translate/translate.cpp @@ -19,8 +19,7 @@ namespace Shader::Gcn { Translator::Translator(IR::Block* block_, Info& info_, const RuntimeInfo& runtime_info_, const Profile& profile_) - : ir{*block_, block_->begin(), info_}, info{info_}, runtime_info{runtime_info_}, - profile{profile_} {} + : ir{*block_, block_->begin()}, info{info_}, runtime_info{runtime_info_}, profile{profile_} {} void Translator::EmitPrologue() { ir.Prologue(); diff --git a/src/shader_recompiler/info.h b/src/shader_recompiler/info.h index d4d676234..664e1f13a 100644 --- a/src/shader_recompiler/info.h +++ b/src/shader_recompiler/info.h @@ -180,8 +180,6 @@ struct Info { std::span user_data; Stage stage; - std::vector string_pool; - u64 pgm_hash{}; VAddr pgm_base; bool has_storage_images{}; diff --git a/src/shader_recompiler/ir/ir_emitter.h b/src/shader_recompiler/ir/ir_emitter.h index 5077456b9..ff9b12182 100644 --- a/src/shader_recompiler/ir/ir_emitter.h +++ b/src/shader_recompiler/ir/ir_emitter.h @@ -16,10 +16,9 @@ namespace Shader::IR { class IREmitter { public: - explicit IREmitter(Block& block_, Shader::Info& info_) - : block{&block_}, insertion_point{block->end()}, info(info_) {} - explicit IREmitter(Block& block_, Block::iterator insertion_point_, Shader::Info& info_) - : block{&block_}, insertion_point{insertion_point_}, info(info_) {} + explicit IREmitter(Block& block_) : block{&block_}, insertion_point{block->end()} {} + explicit IREmitter(Block& block_, Block::iterator insertion_point_) + : block{&block_}, insertion_point{insertion_point_} {} Block* block; @@ -315,7 +314,6 @@ public: private: IR::Block::iterator insertion_point; - Shader::Info& info; template T Inst(Opcode op, Args... args) { diff --git a/src/shader_recompiler/ir/passes/resource_tracking_pass.cpp b/src/shader_recompiler/ir/passes/resource_tracking_pass.cpp index 64b3d2d5c..db0d75f0c 100644 --- a/src/shader_recompiler/ir/passes/resource_tracking_pass.cpp +++ b/src/shader_recompiler/ir/passes/resource_tracking_pass.cpp @@ -377,7 +377,7 @@ void PatchBufferInstruction(IR::Block& block, IR::Inst& inst, Info& info, const auto inst_info = inst.Flags(); // Replace handle with binding index in buffer resource list. - IR::IREmitter ir{block, IR::Block::InstructionList::s_iterator_to(inst), info}; + IR::IREmitter ir{block, IR::Block::InstructionList::s_iterator_to(inst)}; inst.SetArg(0, ir.Imm32(binding)); ASSERT(!buffer.add_tid_enable); @@ -436,7 +436,7 @@ void PatchTextureBufferInstruction(IR::Block& block, IR::Inst& inst, Info& info, }); // Replace handle with binding index in texture buffer resource list. - IR::IREmitter ir{block, IR::Block::InstructionList::s_iterator_to(inst), info}; + IR::IREmitter ir{block, IR::Block::InstructionList::s_iterator_to(inst)}; inst.SetArg(0, ir.Imm32(binding)); ASSERT(!buffer.swizzle_enable && !buffer.add_tid_enable); } @@ -534,7 +534,7 @@ void PatchImageInstruction(IR::Block& block, IR::Inst& inst, Info& info, Descrip image_binding |= (sampler_binding << 16); // Patch image handle - IR::IREmitter ir{block, IR::Block::InstructionList::s_iterator_to(inst), info}; + IR::IREmitter ir{block, IR::Block::InstructionList::s_iterator_to(inst)}; inst.SetArg(0, ir.Imm32(image_binding)); // No need to patch coordinates if we are just querying. @@ -667,7 +667,7 @@ void PatchDataRingInstruction(IR::Block& block, IR::Inst& inst, Info& info, }(); // Patch instruction. - IR::IREmitter ir{block, IR::Block::InstructionList::s_iterator_to(inst), info}; + IR::IREmitter ir{block, IR::Block::InstructionList::s_iterator_to(inst)}; inst.SetArg(0, ir.Imm32(gds_addr >> 2)); inst.SetArg(1, ir.Imm32(binding)); }