@@ -310,8 +310,8 @@ class IRBuilder : public IRBuilderBase {
310
310
// FunctionPointer.
311
311
312
312
bool isTrapIntrinsic (llvm::Value *Callee) {
313
- return Callee ==
314
- llvm::Intrinsic::getDeclaration ( getModule (), llvm::Intrinsic::trap);
313
+ return Callee == llvm::Intrinsic::getOrInsertDeclaration (
314
+ getModule (), llvm::Intrinsic::trap);
315
315
}
316
316
bool isTrapIntrinsic (llvm::Intrinsic::ID intrinsicID) {
317
317
return intrinsicID == llvm::Intrinsic::trap;
@@ -381,7 +381,7 @@ class IRBuilder : public IRBuilderBase {
381
381
const Twine &name = " " ) {
382
382
assert (!isTrapIntrinsic (intrinsicID) && " Use CreateNonMergeableTrap" );
383
383
auto intrinsicFn =
384
- llvm::Intrinsic::getDeclaration (getModule (), intrinsicID);
384
+ llvm::Intrinsic::getOrInsertDeclaration (getModule (), intrinsicID);
385
385
return CreateCallWithoutDbgLoc (
386
386
cast<llvm::FunctionType>(intrinsicFn->getValueType ()), intrinsicFn,
387
387
args, name);
@@ -393,8 +393,8 @@ class IRBuilder : public IRBuilderBase {
393
393
ArrayRef<llvm::Value *> args,
394
394
const Twine &name = " " ) {
395
395
assert (!isTrapIntrinsic (intrinsicID) && " Use CreateNonMergeableTrap" );
396
- auto intrinsicFn =
397
- llvm::Intrinsic::getDeclaration ( getModule (), intrinsicID, typeArgs);
396
+ auto intrinsicFn = llvm::Intrinsic::getOrInsertDeclaration (
397
+ getModule (), intrinsicID, typeArgs);
398
398
return CreateCallWithoutDbgLoc (
399
399
cast<llvm::FunctionType>(intrinsicFn->getValueType ()), intrinsicFn,
400
400
args, name);
0 commit comments