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