Lines Matching refs:CGF
35 DominatingValue<RValue>::saved_type::save(CodeGenFunction &CGF, RValue rv) { in save() argument
44 llvm::Value *addr = CGF.CreateTempAlloca(V->getType(), "saved-rvalue"); in save()
45 CGF.Builder.CreateStore(V, addr); in save()
54 llvm::Value *addr = CGF.CreateTempAlloca(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()
65 llvm::Value *addr = CGF.CreateTempAlloca(V->getType(), "saved-rvalue"); in save()
66 CGF.Builder.CreateStore(V, addr); in save()
73 RValue DominatingValue<RValue>::saved_type::restore(CodeGenFunction &CGF) { in restore() argument
78 return RValue::get(CGF.Builder.CreateLoad(Value)); in restore()
82 return RValue::getAggregate(CGF.Builder.CreateLoad(Value)); in restore()
85 CGF.Builder.CreateLoad(CGF.Builder.CreateStructGEP(Value, 0)); in restore()
87 CGF.Builder.CreateLoad(CGF.Builder.CreateStructGEP(Value, 1)); in restore()
278 static void ResolveAllBranchFixups(CodeGenFunction &CGF, in ResolveAllBranchFixups() argument
283 for (unsigned I = 0, E = CGF.EHStack.getNumBranchFixups(); I != E; ++I) { in ResolveAllBranchFixups()
285 BranchFixup &Fixup = CGF.EHStack.getBranchFixup(I); in ResolveAllBranchFixups()
297 new llvm::StoreInst(CGF.Builder.getInt32(Fixup.DestinationIndex), in ResolveAllBranchFixups()
298 CGF.getNormalCleanupDestSlot(), in ResolveAllBranchFixups()
306 Switch->addCase(CGF.Builder.getInt32(Fixup.DestinationIndex), in ResolveAllBranchFixups()
310 CGF.EHStack.clearFixups(); in ResolveAllBranchFixups()
315 static llvm::SwitchInst *TransitionToCleanupSwitch(CodeGenFunction &CGF, in TransitionToCleanupSwitch() argument
325 new llvm::LoadInst(CGF.getNormalCleanupDestSlot(), "cleanup.dest", Term); in TransitionToCleanupSwitch()
417 static llvm::BasicBlock *CreateNormalEntry(CodeGenFunction &CGF, in CreateNormalEntry() argument
422 Entry = CGF.createBasicBlock("cleanup"); in CreateNormalEntry()
433 static llvm::BasicBlock *SimplifyCleanupEntry(CodeGenFunction &CGF, in SimplifyCleanupEntry() argument
445 bool WasInsertBlock = CGF.Builder.GetInsertBlock() == Entry; in SimplifyCleanupEntry()
446 assert(!WasInsertBlock || CGF.Builder.GetInsertPoint() == Entry->end()); in SimplifyCleanupEntry()
462 CGF.Builder.SetInsertPoint(Pred); in SimplifyCleanupEntry()
467 static void EmitCleanup(CodeGenFunction &CGF, in EmitCleanup() argument
472 if (flags.isForEHCleanup()) CGF.EHStack.pushTerminate(); in EmitCleanup()
478 ContBB = CGF.createBasicBlock("cleanup.done"); in EmitCleanup()
479 llvm::BasicBlock *CleanupBB = CGF.createBasicBlock("cleanup.action"); in EmitCleanup()
481 = CGF.Builder.CreateLoad(ActiveFlag, "cleanup.is_active"); in EmitCleanup()
482 CGF.Builder.CreateCondBr(IsActive, CleanupBB, ContBB); in EmitCleanup()
483 CGF.EmitBlock(CleanupBB); in EmitCleanup()
487 Fn->Emit(CGF, flags); in EmitCleanup()
488 assert(CGF.HaveInsertPoint() && "cleanup ended with no insertion point?"); in EmitCleanup()
492 CGF.EmitBlock(ContBB); in EmitCleanup()
495 if (flags.isForEHCleanup()) CGF.EHStack.popTerminate(); in EmitCleanup()
522 static void destroyOptimisticNormalEntry(CodeGenFunction &CGF, in destroyOptimisticNormalEntry() argument
528 llvm::BasicBlock *unreachableBB = CGF.getUnreachableBlock(); in destroyOptimisticNormalEntry()
549 assert(condition->getOperand(0) == CGF.NormalCleanupDest); in destroyOptimisticNormalEntry()
1042 static void SetupCleanupBlockActivation(CodeGenFunction &CGF, in SetupCleanupBlockActivation() argument
1046 EHCleanupScope &Scope = cast<EHCleanupScope>(*CGF.EHStack.find(C)); in SetupCleanupBlockActivation()
1052 (kind == ForActivation && CGF.isInConditionalBranch()); in SetupCleanupBlockActivation()
1060 (isActivatedInConditional || IsUsedAsNormalCleanup(CGF.EHStack, C))) { in SetupCleanupBlockActivation()
1067 (isActivatedInConditional || IsUsedAsEHCleanup(CGF.EHStack, C))) { in SetupCleanupBlockActivation()
1077 var = CGF.CreateTempAlloca(CGF.Builder.getInt1Ty(), "cleanup.isactive"); in SetupCleanupBlockActivation()
1084 llvm::Value *value = CGF.Builder.getInt1(kind == ForDeactivation); in SetupCleanupBlockActivation()
1088 if (CGF.isInConditionalBranch()) { in SetupCleanupBlockActivation()
1089 CGF.setBeforeOutermostConditional(value, var); in SetupCleanupBlockActivation()
1095 CGF.Builder.CreateStore(CGF.Builder.getInt1(kind == ForActivation), var); in SetupCleanupBlockActivation()