From 3364a461395e1241e87f439f80fa5867c09bc257 Mon Sep 17 00:00:00 2001 From: Eladash <18193363+elad335@users.noreply.github.com> Date: Tue, 26 Mar 2024 16:09:56 +0200 Subject: [PATCH] PPU LLVM: Remove cast to constant --- rpcs3/Emu/Cell/PPUTranslator.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/rpcs3/Emu/Cell/PPUTranslator.cpp b/rpcs3/Emu/Cell/PPUTranslator.cpp index 0517a35530..9060e97a87 100644 --- a/rpcs3/Emu/Cell/PPUTranslator.cpp +++ b/rpcs3/Emu/Cell/PPUTranslator.cpp @@ -305,7 +305,7 @@ Function* PPUTranslator::GetSymbolResolver(const ppu_module& info) vec_addrs.reserve(info.funcs.size()); // Create an array of function pointers - std::vector functions; + std::vector functions; for (const auto& f : info.funcs) { @@ -329,18 +329,9 @@ Function* PPUTranslator::GetSymbolResolver(const ppu_module& info) const auto addr_array_type = ArrayType::get(get_type(), vec_addrs.size()); const auto addr_array = new GlobalVariable(*m_module, addr_array_type, false, GlobalValue::PrivateLinkage, ConstantDataArray::get(m_context, vec_addrs)); - // Initialize the function table with the function pointers - std::vector init_vals; - - for (llvm::Function* func : functions) - { - llvm::Constant* func_ptr = llvm::ConstantExpr::getBitCast(func, ftype->getPointerTo()); - init_vals.push_back(func); - } - // Create an array of function pointers const auto func_table_type = ArrayType::get(ftype->getPointerTo(), info.funcs.size()); - const auto init_func_table = ConstantArray::get(func_table_type, init_vals); + const auto init_func_table = ConstantArray::get(func_table_type, functions); const auto func_table = new GlobalVariable(*m_module, func_table_type, false, GlobalVariable::PrivateLinkage, init_func_table); const auto loop_block = BasicBlock::Create(m_context, "__loop", m_function);