Lines Matching refs:CGF
35 DominatingValue<RValue>::saved_type::save(CodeGenFunction &CGF, RValue rv) { in save() argument
45 CGF.CreateDefaultAlignTempAlloca(V->getType(), "saved-rvalue"); in save()
46 CGF.Builder.CreateStore(V, addr); in save()
54 Address addr = CGF.CreateDefaultAlignTempAlloca(ComplexTy, "saved-complex"); in save()
55 CGF.Builder.CreateStore(V.first, CGF.Builder.CreateStructGEP(addr, 0)); in save()
56 CGF.Builder.CreateStore(V.second, CGF.Builder.CreateStructGEP(addr, 1)); in save()
67 CGF.CreateTempAlloca(V.getType(), CGF.getPointerAlign(), "saved-rvalue"); in save()
68 CGF.Builder.CreateStore(V.getPointer(), addr); in save()
76 RValue DominatingValue<RValue>::saved_type::restore(CodeGenFunction &CGF) { in restore() argument
86 return RValue::get(CGF.Builder.CreateLoad(getSavingAddress(Value))); in restore()
91 auto addr = CGF.Builder.CreateLoad(getSavingAddress(Value)); in restore()
98 CGF.Builder.CreateLoad(CGF.Builder.CreateStructGEP(address, 0)); in restore()
100 CGF.Builder.CreateLoad(CGF.Builder.CreateStructGEP(address, 1)); in restore()
210 if (CGF->getLangOpts().EHAsynch && IsEHCleanup && !IsLifetimeMarker && in pushCleanup()
211 CGF->getTarget().getCXXABI().isMicrosoft()) in pushCleanup()
212 CGF->EmitSehCppScopeBegin(); in pushCleanup()
335 static void ResolveAllBranchFixups(CodeGenFunction &CGF, in ResolveAllBranchFixups() argument
340 for (unsigned I = 0, E = CGF.EHStack.getNumBranchFixups(); I != E; ++I) { in ResolveAllBranchFixups()
342 BranchFixup &Fixup = CGF.EHStack.getBranchFixup(I); in ResolveAllBranchFixups()
354 createStoreInstBefore(CGF.Builder.getInt32(Fixup.DestinationIndex), in ResolveAllBranchFixups()
355 CGF.getNormalCleanupDestSlot(), in ResolveAllBranchFixups()
364 Switch->addCase(CGF.Builder.getInt32(Fixup.DestinationIndex), in ResolveAllBranchFixups()
368 CGF.EHStack.clearFixups(); in ResolveAllBranchFixups()
373 static llvm::SwitchInst *TransitionToCleanupSwitch(CodeGenFunction &CGF, in TransitionToCleanupSwitch() argument
382 auto Load = createLoadInstBefore(CGF.getNormalCleanupDestSlot(), in TransitionToCleanupSwitch()
520 static llvm::BasicBlock *CreateNormalEntry(CodeGenFunction &CGF, in CreateNormalEntry() argument
525 Entry = CGF.createBasicBlock("cleanup"); in CreateNormalEntry()
536 static llvm::BasicBlock *SimplifyCleanupEntry(CodeGenFunction &CGF, in SimplifyCleanupEntry() argument
548 bool WasInsertBlock = CGF.Builder.GetInsertBlock() == Entry; in SimplifyCleanupEntry()
549 assert(!WasInsertBlock || CGF.Builder.GetInsertPoint() == Entry->end()); in SimplifyCleanupEntry()
565 CGF.Builder.SetInsertPoint(Pred); in SimplifyCleanupEntry()
570 static void EmitCleanup(CodeGenFunction &CGF, in EmitCleanup() argument
578 ContBB = CGF.createBasicBlock("cleanup.done"); in EmitCleanup()
579 llvm::BasicBlock *CleanupBB = CGF.createBasicBlock("cleanup.action"); in EmitCleanup()
581 = CGF.Builder.CreateLoad(ActiveFlag, "cleanup.is_active"); in EmitCleanup()
582 CGF.Builder.CreateCondBr(IsActive, CleanupBB, ContBB); in EmitCleanup()
583 CGF.EmitBlock(CleanupBB); in EmitCleanup()
587 Fn->Emit(CGF, flags); in EmitCleanup()
588 assert(CGF.HaveInsertPoint() && "cleanup ended with no insertion point?"); in EmitCleanup()
592 CGF.EmitBlock(ContBB); in EmitCleanup()
619 static void destroyOptimisticNormalEntry(CodeGenFunction &CGF, in destroyOptimisticNormalEntry() argument
625 llvm::BasicBlock *unreachableBB = CGF.getUnreachableBlock(); in destroyOptimisticNormalEntry()
646 assert(condition->getOperand(0) == CGF.NormalCleanupDest.getPointer()); in destroyOptimisticNormalEntry()
1213 static void SetupCleanupBlockActivation(CodeGenFunction &CGF, in SetupCleanupBlockActivation() argument
1217 EHCleanupScope &Scope = cast<EHCleanupScope>(*CGF.EHStack.find(C)); in SetupCleanupBlockActivation()
1223 (kind == ForActivation && CGF.isInConditionalBranch()); in SetupCleanupBlockActivation()
1231 (isActivatedInConditional || IsUsedAsNormalCleanup(CGF.EHStack, C))) { in SetupCleanupBlockActivation()
1238 (isActivatedInConditional || IsUsedAsEHCleanup(CGF.EHStack, C))) { in SetupCleanupBlockActivation()
1248 var = CGF.CreateTempAlloca(CGF.Builder.getInt1Ty(), CharUnits::One(), in SetupCleanupBlockActivation()
1256 llvm::Constant *value = CGF.Builder.getInt1(kind == ForDeactivation); in SetupCleanupBlockActivation()
1260 if (CGF.isInConditionalBranch()) { in SetupCleanupBlockActivation()
1261 CGF.setBeforeOutermostConditional(value, var); in SetupCleanupBlockActivation()
1267 CGF.Builder.CreateStore(CGF.Builder.getInt1(kind == ForActivation), var); in SetupCleanupBlockActivation()
1330 static void EmitSehScope(CodeGenFunction &CGF, in EmitSehScope() argument
1332 llvm::BasicBlock *InvokeDest = CGF.getInvokeDest(); in EmitSehScope()
1333 assert(CGF.Builder.GetInsertBlock() && InvokeDest); in EmitSehScope()
1334 llvm::BasicBlock *Cont = CGF.createBasicBlock("invoke.cont"); in EmitSehScope()
1336 CGF.getBundlesForFunclet(SehCppScope.getCallee()); in EmitSehScope()
1337 if (CGF.CurrentFuncletPad) in EmitSehScope()
1338 BundleList.emplace_back("funclet", CGF.CurrentFuncletPad); in EmitSehScope()
1339 CGF.Builder.CreateInvoke(SehCppScope, Cont, InvokeDest, None, BundleList); in EmitSehScope()
1340 CGF.EmitBlock(Cont); in EmitSehScope()