Lines Matching full:builder

61   void linkExceptionRegistration(IRBuilder<> &Builder, Function *Handler);
62 void unlinkExceptionRegistration(IRBuilder<> &Builder);
66 Value *emitEHLSDA(IRBuilder<> &Builder, Function *F);
71 void rewriteSetJmpCall(IRBuilder<> &Builder, Function &F, CallBase &Call,
277 IRBuilder<> Builder(&F->getEntryBlock(), F->getEntryBlock().begin());
278 Type *Int8PtrType = Builder.getPtrTy();
279 Type *Int32Ty = Builder.getInt32Ty();
280 Type *VoidTy = Builder.getVoidTy();
284 RegNode = Builder.CreateAlloca(RegNodeTy);
286 Value *SP = Builder.CreateStackSave();
287 Builder.CreateStore(SP, Builder.CreateStructGEP(RegNodeTy, RegNode, 0));
291 insertStateNumberStore(&*Builder.GetInsertPoint(), ParentBaseState);
294 Link = Builder.CreateStructGEP(RegNodeTy, RegNode, 1);
295 linkExceptionRegistration(Builder, Trampoline);
310 RegNode = Builder.CreateAlloca(RegNodeTy);
312 EHGuardNode = Builder.CreateAlloca(Int32Ty);
315 Value *SP = Builder.CreateStackSave();
316 Builder.CreateStore(SP, Builder.CreateStructGEP(RegNodeTy, RegNode, 0));
320 insertStateNumberStore(&*Builder.GetInsertPoint(), ParentBaseState);
322 Value *LSDA = emitEHLSDA(Builder, F);
323 LSDA = Builder.CreatePtrToInt(LSDA, Int32Ty);
328 Value *Val = Builder.CreateLoad(Int32Ty, Cookie, "cookie");
329 LSDA = Builder.CreateXor(LSDA, Val);
331 Builder.CreateStore(LSDA, Builder.CreateStructGEP(RegNodeTy, RegNode, 3));
335 Value *Val = Builder.CreateLoad(Int32Ty, Cookie);
336 Value *FrameAddr = Builder.CreateCall(
339 Builder.getPtrTy(
341 Builder.getInt32(0), "frameaddr");
342 Value *FrameAddrI32 = Builder.CreatePtrToInt(FrameAddr, Int32Ty);
343 FrameAddrI32 = Builder.CreateXor(FrameAddrI32, Val);
344 Builder.CreateStore(FrameAddrI32, EHGuardNode);
348 Link = Builder.CreateStructGEP(RegNodeTy, RegNode, 2);
349 linkExceptionRegistration(Builder, PersonalityFn);
366 Builder.SetInsertPoint(T);
367 unlinkExceptionRegistration(Builder);
371 Value *WinEHStatePass::emitEHLSDA(IRBuilder<> &Builder, Function *F) {
372 return Builder.CreateCall(
403 IRBuilder<> Builder(EntryBB);
404 Value *LSDA = emitEHLSDA(Builder, ParentFunc);
407 CallInst *Call = Builder.CreateCall(TargetFuncTy, PersonalityFn, Args);
412 Builder.CreateRet(Call);
416 void WinEHStatePass::linkExceptionRegistration(IRBuilder<> &Builder,
421 LLVMContext &C = Builder.getContext();
424 Builder.CreateStore(Handler, Builder.CreateStructGEP(LinkTy, Link, 1));
427 Value *Next = Builder.CreateLoad(PointerType::getUnqual(C), FSZero);
428 Builder.CreateStore(Next, Builder.CreateStructGEP(LinkTy, Link, 0));
430 Builder.CreateStore(Link, FSZero);
433 void WinEHStatePass::unlinkExceptionRegistration(IRBuilder<> &Builder) {
437 Builder.Insert(GEP);
441 LLVMContext &C = Builder.getContext();
444 Value *Next = Builder.CreateLoad(PointerType::getUnqual(C),
445 Builder.CreateStructGEP(LinkTy, Link, 0));
447 Builder.CreateStore(Next, FSZero);
454 void WinEHStatePass::rewriteSetJmpCall(IRBuilder<> &Builder, Function &F,
467 OptionalArgs.push_back(emitEHLSDA(Builder, &F));
479 Builder.CreateBitCast(Call.getArgOperand(0), Builder.getPtrTy()));
480 Args.push_back(Builder.getInt32(OptionalArgs.size()));
485 CallInst *NewCI = Builder.CreateCall(SetJmp3, Args, OpBundles);
490 NewCall = Builder.CreateInvoke(
625 IRBuilder<> Builder(RegNode->getNextNode());
626 Value *RegNodeI8 = Builder.CreateBitCast(RegNode, Builder.getPtrTy());
627 Builder.CreateCall(
632 IRBuilder<> Builder(EHGuardNode->getNextNode());
634 Builder.CreateBitCast(EHGuardNode, Builder.getPtrTy());
635 Builder.CreateCall(
767 IRBuilder<> Builder(Call);
770 Value *StateField = Builder.CreateStructGEP(RegNode->getAllocatedType(),
772 State = Builder.CreateLoad(Builder.getInt32Ty(), StateField);
774 State = Builder.getInt32(getStateForCall(BlockColors, FuncInfo, *Call));
776 rewriteSetJmpCall(Builder, F, *Call, State);
781 IRBuilder<> Builder(IP);
782 Value *StateField = Builder.CreateStructGEP(RegNode->getAllocatedType(),
784 Builder.CreateStore(Builder.getInt32(State), StateField);