@@ -333,12 +333,10 @@ void WinEHStatePass::emitExceptionRegistrationRecord(Function *F) {
333333 // If using _except_handler4, the EHGuard contains: FramePtr xor Cookie.
334334 if (UseStackGuard) {
335335 Value *Val = Builder.CreateLoad (Int32Ty, Cookie);
336- Value *FrameAddr = Builder.CreateCall (
337- Intrinsic::getOrInsertDeclaration (
338- TheModule, Intrinsic::frameaddress,
339- Builder.getPtrTy (
340- TheModule->getDataLayout ().getAllocaAddrSpace ())),
341- Builder.getInt32 (0 ), " frameaddr" );
336+ Value *FrameAddr = Builder.CreateIntrinsic (
337+ Intrinsic::frameaddress,
338+ Builder.getPtrTy (TheModule->getDataLayout ().getAllocaAddrSpace ()),
339+ Builder.getInt32 (0 ), /* FMFSource=*/ nullptr , " frameaddr" );
342340 Value *FrameAddrI32 = Builder.CreatePtrToInt (FrameAddr, Int32Ty);
343341 FrameAddrI32 = Builder.CreateXor (FrameAddrI32, Val);
344342 Builder.CreateStore (FrameAddrI32, EHGuardNode);
@@ -369,8 +367,7 @@ void WinEHStatePass::emitExceptionRegistrationRecord(Function *F) {
369367}
370368
371369Value *WinEHStatePass::emitEHLSDA (IRBuilder<> &Builder, Function *F) {
372- return Builder.CreateCall (
373- Intrinsic::getOrInsertDeclaration (TheModule, Intrinsic::x86_seh_lsda), F);
370+ return Builder.CreateIntrinsic (Intrinsic::x86_seh_lsda, {}, F);
374371}
375372
376373// / Generate a thunk that puts the LSDA of ParentFunc in EAX and then calls
@@ -624,17 +621,13 @@ void WinEHStatePass::addStateStores(Function &F, WinEHFuncInfo &FuncInfo) {
624621 // that it can recover the original frame pointer.
625622 IRBuilder<> Builder (RegNode->getNextNode ());
626623 Value *RegNodeI8 = Builder.CreateBitCast (RegNode, Builder.getPtrTy ());
627- Builder.CreateCall (Intrinsic::getOrInsertDeclaration (
628- TheModule, Intrinsic::x86_seh_ehregnode),
629- {RegNodeI8});
624+ Builder.CreateIntrinsic (Intrinsic::x86_seh_ehregnode, {}, {RegNodeI8});
630625
631626 if (EHGuardNode) {
632627 IRBuilder<> Builder (EHGuardNode->getNextNode ());
633628 Value *EHGuardNodeI8 =
634629 Builder.CreateBitCast (EHGuardNode, Builder.getPtrTy ());
635- Builder.CreateCall (Intrinsic::getOrInsertDeclaration (
636- TheModule, Intrinsic::x86_seh_ehguard),
637- {EHGuardNodeI8});
630+ Builder.CreateIntrinsic (Intrinsic::x86_seh_ehguard, {}, {EHGuardNodeI8});
638631 }
639632
640633 // Calculate state numbers.
0 commit comments