Build LLVM-22 fix removed getDeclaration

This commit is contained in:
Marin Baron 2025-11-30 12:29:28 +01:00 committed by Niram7777
parent 67f7119717
commit 656491e687

View file

@ -1149,7 +1149,7 @@ struct llvm_fshl
static llvm::Function* get_fshl(llvm::IRBuilder<>* ir) static llvm::Function* get_fshl(llvm::IRBuilder<>* ir)
{ {
const auto _module = ir->GetInsertBlock()->getParent()->getParent(); const auto _module = ir->GetInsertBlock()->getParent()->getParent();
return llvm::Intrinsic::getDeclaration(_module, llvm::Intrinsic::fshl, {llvm_value_t<T>::get_type(ir->getContext())}); return llvm::Intrinsic::getOrInsertDeclaration(_module, llvm::Intrinsic::fshl, {llvm_value_t<T>::get_type(ir->getContext())});
} }
static llvm::Value* fold(llvm::IRBuilder<>* ir, llvm::Value* v1, llvm::Value* v2, llvm::Value* v3) static llvm::Value* fold(llvm::IRBuilder<>* ir, llvm::Value* v1, llvm::Value* v2, llvm::Value* v3)
@ -1221,7 +1221,7 @@ struct llvm_fshr
static llvm::Function* get_fshr(llvm::IRBuilder<>* ir) static llvm::Function* get_fshr(llvm::IRBuilder<>* ir)
{ {
const auto _module = ir->GetInsertBlock()->getParent()->getParent(); const auto _module = ir->GetInsertBlock()->getParent()->getParent();
return llvm::Intrinsic::getDeclaration(_module, llvm::Intrinsic::fshr, {llvm_value_t<T>::get_type(ir->getContext())}); return llvm::Intrinsic::getOrInsertDeclaration(_module, llvm::Intrinsic::fshr, {llvm_value_t<T>::get_type(ir->getContext())});
} }
static llvm::Value* fold(llvm::IRBuilder<>* ir, llvm::Value* v1, llvm::Value* v2, llvm::Value* v3) static llvm::Value* fold(llvm::IRBuilder<>* ir, llvm::Value* v1, llvm::Value* v2, llvm::Value* v3)
@ -2220,7 +2220,7 @@ struct llvm_add_sat
static llvm::Function* get_add_sat(llvm::IRBuilder<>* ir) static llvm::Function* get_add_sat(llvm::IRBuilder<>* ir)
{ {
const auto _module = ir->GetInsertBlock()->getParent()->getParent(); const auto _module = ir->GetInsertBlock()->getParent()->getParent();
return llvm::Intrinsic::getDeclaration(_module, intr, {llvm_value_t<T>::get_type(ir->getContext())}); return llvm::Intrinsic::getOrInsertDeclaration(_module, intr, {llvm_value_t<T>::get_type(ir->getContext())});
} }
llvm::Value* eval(llvm::IRBuilder<>* ir) const llvm::Value* eval(llvm::IRBuilder<>* ir) const
@ -2303,7 +2303,7 @@ struct llvm_sub_sat
static llvm::Function* get_sub_sat(llvm::IRBuilder<>* ir) static llvm::Function* get_sub_sat(llvm::IRBuilder<>* ir)
{ {
const auto _module = ir->GetInsertBlock()->getParent()->getParent(); const auto _module = ir->GetInsertBlock()->getParent()->getParent();
return llvm::Intrinsic::getDeclaration(_module, intr, {llvm_value_t<T>::get_type(ir->getContext())}); return llvm::Intrinsic::getOrInsertDeclaration(_module, intr, {llvm_value_t<T>::get_type(ir->getContext())});
} }
llvm::Value* eval(llvm::IRBuilder<>* ir) const llvm::Value* eval(llvm::IRBuilder<>* ir) const
@ -3592,7 +3592,7 @@ public:
llvm::Function* get_intrinsic(llvm::Intrinsic::ID id) llvm::Function* get_intrinsic(llvm::Intrinsic::ID id)
{ {
const auto _module = m_ir->GetInsertBlock()->getParent()->getParent(); const auto _module = m_ir->GetInsertBlock()->getParent()->getParent();
return llvm::Intrinsic::getDeclaration(_module, id, {get_type<Types>()...}); return llvm::Intrinsic::getOrInsertDeclaration(_module, id, {get_type<Types>()...});
} }
template <typename T1, typename T2> template <typename T1, typename T2>