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()
56 Address addr = CGF.CreateDefaultAlignTempAlloca(ComplexTy, "saved-complex"); in save()
57 CGF.Builder.CreateStore(V.first, in save()
58 CGF.Builder.CreateStructGEP(addr, 0, CharUnits())); in save()
60 CGF.CGM.getDataLayout().getTypeAllocSize(V.first->getType())); in save()
61 CGF.Builder.CreateStore(V.second, in save()
62 CGF.Builder.CreateStructGEP(addr, 1, offset)); in save()
73 CGF.CreateTempAlloca(V.getType(), CGF.getPointerAlign(), "saved-rvalue"); in save()
74 CGF.Builder.CreateStore(V.getPointer(), addr); in save()
82 RValue DominatingValue<RValue>::saved_type::restore(CodeGenFunction &CGF) { in restore() argument
91 return RValue::get(CGF.Builder.CreateLoad(getSavingAddress(Value))); in restore()
95 auto addr = CGF.Builder.CreateLoad(getSavingAddress(Value)); in restore()
100 llvm::Value *real = CGF.Builder.CreateLoad( in restore()
101 CGF.Builder.CreateStructGEP(address, 0, CharUnits())); in restore()
103 CGF.CGM.getDataLayout().getTypeAllocSize(real->getType())); in restore()
104 llvm::Value *imag = CGF.Builder.CreateLoad( in restore()
105 CGF.Builder.CreateStructGEP(address, 1, offset)); in restore()
324 static void ResolveAllBranchFixups(CodeGenFunction &CGF, in ResolveAllBranchFixups() argument
329 for (unsigned I = 0, E = CGF.EHStack.getNumBranchFixups(); I != E; ++I) { in ResolveAllBranchFixups()
331 BranchFixup &Fixup = CGF.EHStack.getBranchFixup(I); in ResolveAllBranchFixups()
343 createStoreInstBefore(CGF.Builder.getInt32(Fixup.DestinationIndex), in ResolveAllBranchFixups()
344 CGF.getNormalCleanupDestSlot(), in ResolveAllBranchFixups()
353 Switch->addCase(CGF.Builder.getInt32(Fixup.DestinationIndex), in ResolveAllBranchFixups()
357 CGF.EHStack.clearFixups(); in ResolveAllBranchFixups()
362 static llvm::SwitchInst *TransitionToCleanupSwitch(CodeGenFunction &CGF, in TransitionToCleanupSwitch() argument
371 auto Load = createLoadInstBefore(CGF.getNormalCleanupDestSlot(), in TransitionToCleanupSwitch()
464 static llvm::BasicBlock *CreateNormalEntry(CodeGenFunction &CGF, in CreateNormalEntry() argument
469 Entry = CGF.createBasicBlock("cleanup"); in CreateNormalEntry()
480 static llvm::BasicBlock *SimplifyCleanupEntry(CodeGenFunction &CGF, in SimplifyCleanupEntry() argument
492 bool WasInsertBlock = CGF.Builder.GetInsertBlock() == Entry; in SimplifyCleanupEntry()
493 assert(!WasInsertBlock || CGF.Builder.GetInsertPoint() == Entry->end()); in SimplifyCleanupEntry()
509 CGF.Builder.SetInsertPoint(Pred); in SimplifyCleanupEntry()
514 static void EmitCleanup(CodeGenFunction &CGF, in EmitCleanup() argument
522 ContBB = CGF.createBasicBlock("cleanup.done"); in EmitCleanup()
523 llvm::BasicBlock *CleanupBB = CGF.createBasicBlock("cleanup.action"); in EmitCleanup()
525 = CGF.Builder.CreateLoad(ActiveFlag, "cleanup.is_active"); in EmitCleanup()
526 CGF.Builder.CreateCondBr(IsActive, CleanupBB, ContBB); in EmitCleanup()
527 CGF.EmitBlock(CleanupBB); in EmitCleanup()
531 Fn->Emit(CGF, flags); in EmitCleanup()
532 assert(CGF.HaveInsertPoint() && "cleanup ended with no insertion point?"); in EmitCleanup()
536 CGF.EmitBlock(ContBB); in EmitCleanup()
563 static void destroyOptimisticNormalEntry(CodeGenFunction &CGF, in destroyOptimisticNormalEntry() argument
569 llvm::BasicBlock *unreachableBB = CGF.getUnreachableBlock(); in destroyOptimisticNormalEntry()
590 assert(condition->getOperand(0) == CGF.NormalCleanupDest); in destroyOptimisticNormalEntry()
1123 static void SetupCleanupBlockActivation(CodeGenFunction &CGF, in SetupCleanupBlockActivation() argument
1127 EHCleanupScope &Scope = cast<EHCleanupScope>(*CGF.EHStack.find(C)); in SetupCleanupBlockActivation()
1133 (kind == ForActivation && CGF.isInConditionalBranch()); in SetupCleanupBlockActivation()
1141 (isActivatedInConditional || IsUsedAsNormalCleanup(CGF.EHStack, C))) { in SetupCleanupBlockActivation()
1148 (isActivatedInConditional || IsUsedAsEHCleanup(CGF.EHStack, C))) { in SetupCleanupBlockActivation()
1158 var = CGF.CreateTempAlloca(CGF.Builder.getInt1Ty(), CharUnits::One(), in SetupCleanupBlockActivation()
1166 llvm::Constant *value = CGF.Builder.getInt1(kind == ForDeactivation); in SetupCleanupBlockActivation()
1170 if (CGF.isInConditionalBranch()) { in SetupCleanupBlockActivation()
1171 CGF.setBeforeOutermostConditional(value, var); in SetupCleanupBlockActivation()
1177 CGF.Builder.CreateStore(CGF.Builder.getInt1(kind == ForActivation), var); in SetupCleanupBlockActivation()