Lines Matching refs:CGF
36 DominatingValue<RValue>::saved_type::save(CodeGenFunction &CGF, RValue rv) { in save() argument
46 CGF.CreateDefaultAlignTempAlloca(V->getType(), "saved-rvalue"); in save()
47 CGF.Builder.CreateStore(V, addr); in save()
55 Address addr = CGF.CreateDefaultAlignTempAlloca(ComplexTy, "saved-complex"); in save()
56 CGF.Builder.CreateStore(V.first, in save()
57 CGF.Builder.CreateStructGEP(addr, 0, CharUnits())); in save()
59 CGF.CGM.getDataLayout().getTypeAllocSize(V.first->getType())); in save()
60 CGF.Builder.CreateStore(V.second, in save()
61 CGF.Builder.CreateStructGEP(addr, 1, offset)); in save()
72 CGF.CreateTempAlloca(V.getType(), CGF.getPointerAlign(), "saved-rvalue"); in save()
73 CGF.Builder.CreateStore(V.getPointer(), addr); in save()
81 RValue DominatingValue<RValue>::saved_type::restore(CodeGenFunction &CGF) { in restore() argument
90 return RValue::get(CGF.Builder.CreateLoad(getSavingAddress(Value))); in restore()
94 auto addr = CGF.Builder.CreateLoad(getSavingAddress(Value)); in restore()
99 llvm::Value *real = CGF.Builder.CreateLoad( in restore()
100 CGF.Builder.CreateStructGEP(address, 0, CharUnits())); in restore()
102 CGF.CGM.getDataLayout().getTypeAllocSize(real->getType())); in restore()
103 llvm::Value *imag = CGF.Builder.CreateLoad( in restore()
104 CGF.Builder.CreateStructGEP(address, 1, offset)); in restore()
327 static void ResolveAllBranchFixups(CodeGenFunction &CGF, in ResolveAllBranchFixups() argument
332 for (unsigned I = 0, E = CGF.EHStack.getNumBranchFixups(); I != E; ++I) { in ResolveAllBranchFixups()
334 BranchFixup &Fixup = CGF.EHStack.getBranchFixup(I); in ResolveAllBranchFixups()
346 createStoreInstBefore(CGF.Builder.getInt32(Fixup.DestinationIndex), in ResolveAllBranchFixups()
347 CGF.getNormalCleanupDestSlot(), in ResolveAllBranchFixups()
356 Switch->addCase(CGF.Builder.getInt32(Fixup.DestinationIndex), in ResolveAllBranchFixups()
360 CGF.EHStack.clearFixups(); in ResolveAllBranchFixups()
365 static llvm::SwitchInst *TransitionToCleanupSwitch(CodeGenFunction &CGF, in TransitionToCleanupSwitch() argument
374 auto Load = createLoadInstBefore(CGF.getNormalCleanupDestSlot(), in TransitionToCleanupSwitch()
512 static llvm::BasicBlock *CreateNormalEntry(CodeGenFunction &CGF, in CreateNormalEntry() argument
517 Entry = CGF.createBasicBlock("cleanup"); in CreateNormalEntry()
528 static llvm::BasicBlock *SimplifyCleanupEntry(CodeGenFunction &CGF, in SimplifyCleanupEntry() argument
540 bool WasInsertBlock = CGF.Builder.GetInsertBlock() == Entry; in SimplifyCleanupEntry()
541 assert(!WasInsertBlock || CGF.Builder.GetInsertPoint() == Entry->end()); in SimplifyCleanupEntry()
557 CGF.Builder.SetInsertPoint(Pred); in SimplifyCleanupEntry()
562 static void EmitCleanup(CodeGenFunction &CGF, in EmitCleanup() argument
570 ContBB = CGF.createBasicBlock("cleanup.done"); in EmitCleanup()
571 llvm::BasicBlock *CleanupBB = CGF.createBasicBlock("cleanup.action"); in EmitCleanup()
573 = CGF.Builder.CreateLoad(ActiveFlag, "cleanup.is_active"); in EmitCleanup()
574 CGF.Builder.CreateCondBr(IsActive, CleanupBB, ContBB); in EmitCleanup()
575 CGF.EmitBlock(CleanupBB); in EmitCleanup()
579 Fn->Emit(CGF, flags); in EmitCleanup()
580 assert(CGF.HaveInsertPoint() && "cleanup ended with no insertion point?"); in EmitCleanup()
584 CGF.EmitBlock(ContBB); in EmitCleanup()
611 static void destroyOptimisticNormalEntry(CodeGenFunction &CGF, in destroyOptimisticNormalEntry() argument
617 llvm::BasicBlock *unreachableBB = CGF.getUnreachableBlock(); in destroyOptimisticNormalEntry()
638 assert(condition->getOperand(0) == CGF.NormalCleanupDest.getPointer()); in destroyOptimisticNormalEntry()
1176 static void SetupCleanupBlockActivation(CodeGenFunction &CGF, in SetupCleanupBlockActivation() argument
1180 EHCleanupScope &Scope = cast<EHCleanupScope>(*CGF.EHStack.find(C)); in SetupCleanupBlockActivation()
1186 (kind == ForActivation && CGF.isInConditionalBranch()); in SetupCleanupBlockActivation()
1194 (isActivatedInConditional || IsUsedAsNormalCleanup(CGF.EHStack, C))) { in SetupCleanupBlockActivation()
1201 (isActivatedInConditional || IsUsedAsEHCleanup(CGF.EHStack, C))) { in SetupCleanupBlockActivation()
1211 var = CGF.CreateTempAlloca(CGF.Builder.getInt1Ty(), CharUnits::One(), in SetupCleanupBlockActivation()
1219 llvm::Constant *value = CGF.Builder.getInt1(kind == ForDeactivation); in SetupCleanupBlockActivation()
1223 if (CGF.isInConditionalBranch()) { in SetupCleanupBlockActivation()
1224 CGF.setBeforeOutermostConditional(value, var); in SetupCleanupBlockActivation()
1230 CGF.Builder.CreateStore(CGF.Builder.getInt1(kind == ForActivation), var); in SetupCleanupBlockActivation()