diff --git a/Utilities/JIT.cpp b/Utilities/JIT.cpp index f9bfd7d390..22417b0f4b 100644 --- a/Utilities/JIT.cpp +++ b/Utilities/JIT.cpp @@ -258,11 +258,11 @@ struct MemoryManager : llvm::RTDyldMemoryManager return RTDyldMemoryManager::registerEHFrames(addr, load_addr, size); } - virtual void deregisterEHFrames(u8* addr, u64 load_addr, std::size_t size) override + virtual void deregisterEHFrames() override { LOG_ERROR(GENERAL, "deregisterEHFrames() called"); // Not expected - return RTDyldMemoryManager::deregisterEHFrames(addr, load_addr, size); + return RTDyldMemoryManager::deregisterEHFrames(); } }; diff --git a/rpcs3/Emu/Cell/PPUTranslator.cpp b/rpcs3/Emu/Cell/PPUTranslator.cpp index 965631c061..fda6c49f36 100644 --- a/rpcs3/Emu/Cell/PPUTranslator.cpp +++ b/rpcs3/Emu/Cell/PPUTranslator.cpp @@ -16,7 +16,7 @@ PPUTranslator::PPUTranslator(LLVMContext& context, Module* module, const ppu_mod , m_module(module) , m_is_be(false) , m_info(info) - , m_pure_attr(AttributeSet::get(m_context, AttributeSet::FunctionIndex, {Attribute::NoUnwind, Attribute::ReadNone})) + , m_pure_attr(AttributeList::get(m_context,AttributeList::FunctionIndex, AttrBuilder().addAttribute(Attribute::NoUnwind).addAttribute(Attribute::ReadNone))) { // There is no weak linkage on JIT, so let's create variables with different names for each module part const u32 gsuffix = m_info.name.empty() ? info.funcs[0].addr : info.funcs[0].addr - m_info.segs[0].addr; @@ -133,7 +133,7 @@ Function* PPUTranslator::Translate(const ppu_function& info) const u64 base = m_reloc ? m_reloc->addr : 0; m_addr = info.addr - base; - m_thread = &*m_function->getArgumentList().begin(); + m_thread = &*m_function->arg_begin(); m_base_loaded = m_ir->CreateLoad(m_base); m_body = BasicBlock::Create(m_context, "__body", m_function); diff --git a/rpcs3/Emu/Cell/PPUTranslator.h b/rpcs3/Emu/Cell/PPUTranslator.h index cefabf306e..d8ff09ec99 100644 --- a/rpcs3/Emu/Cell/PPUTranslator.h +++ b/rpcs3/Emu/Cell/PPUTranslator.h @@ -120,7 +120,7 @@ class PPUTranslator final //: public CPUTranslator std::map m_relocs; // Attributes for function calls which are "pure" and may be optimized away if their results are unused - const llvm::AttributeSet m_pure_attr; + const llvm::AttributeList m_pure_attr; // IR builder llvm::IRBuilder<>* m_ir; @@ -404,7 +404,7 @@ public: // Call a function with attribute list template - llvm::CallInst* Call(llvm::Type* ret, llvm::AttributeSet attr, llvm::StringRef name, Args... args) + llvm::CallInst* Call(llvm::Type* ret, llvm::AttributeList attr, llvm::StringRef name, Args... args) { // Call the function return m_ir->CreateCall(m_module->getOrInsertFunction(name, llvm::FunctionType::get(ret, {args->getType()...}, false), attr), {args...}); @@ -414,7 +414,7 @@ public: template llvm::CallInst* Call(llvm::Type* ret, llvm::StringRef name, Args... args) { - return Call(ret, llvm::AttributeSet{}, name, args...); + return Call(ret, llvm::AttributeList{}, name, args...); } // Handle compilation errors