Lines Matching refs:CGF

1030   llvm::Value *EmitClassRefViaRuntime(CodeGenFunction &CGF,
1066 CodeGen::RValue EmitMessageSend(CodeGen::CodeGenFunction &CGF,
1099 void GenerateDirectMethodPrologue(CodeGenFunction &CGF, llvm::Function *Fn,
1240 llvm::Value *EmitClassRef(CodeGenFunction &CGF,
1243 llvm::Value *EmitClassRefFromId(CodeGenFunction &CGF,
1246 llvm::Value *EmitNSAutoreleasePoolClassRef(CodeGenFunction &CGF) override;
1308 llvm::Value *EmitSelector(CodeGenFunction &CGF, Selector Sel);
1318 CodeGen::RValue GenerateMessageSend(CodeGen::CodeGenFunction &CGF,
1327 GenerateMessageSendSuper(CodeGen::CodeGenFunction &CGF,
1334 llvm::Value *GetClass(CodeGenFunction &CGF,
1337 llvm::Value *GetSelector(CodeGenFunction &CGF, Selector Sel) override;
1338 Address GetAddrOfSelector(CodeGenFunction &CGF, Selector Sel) override;
1342 llvm::Value *GetSelector(CodeGenFunction &CGF,
1353 llvm::Value *GenerateProtocolRef(CodeGenFunction &CGF,
1366 void EmitTryStmt(CodeGen::CodeGenFunction &CGF,
1368 void EmitSynchronizedStmt(CodeGen::CodeGenFunction &CGF,
1370 void EmitTryOrSynchronizedStmt(CodeGen::CodeGenFunction &CGF, const Stmt &S);
1371 void EmitThrowStmt(CodeGen::CodeGenFunction &CGF, const ObjCAtThrowStmt &S,
1373 llvm::Value * EmitObjCWeakRead(CodeGen::CodeGenFunction &CGF,
1375 void EmitObjCWeakAssign(CodeGen::CodeGenFunction &CGF,
1377 void EmitObjCGlobalAssign(CodeGen::CodeGenFunction &CGF,
1380 void EmitObjCIvarAssign(CodeGen::CodeGenFunction &CGF,
1383 void EmitObjCStrongCastAssign(CodeGen::CodeGenFunction &CGF,
1385 void EmitGCMemmoveCollectable(CodeGen::CodeGenFunction &CGF,
1389 LValue EmitObjCValueForIvar(CodeGen::CodeGenFunction &CGF, QualType ObjectTy,
1392 llvm::Value *EmitIvarOffset(CodeGen::CodeGenFunction &CGF,
1481 CodeGen::RValue EmitVTableMessageSend(CodeGen::CodeGenFunction &CGF,
1502 llvm::Value *EmitLoadOfClassRef(CodeGenFunction &CGF,
1508 llvm::Value *EmitClassRef(CodeGenFunction &CGF,
1511 llvm::Value *EmitClassRefFromId(CodeGenFunction &CGF,
1515 llvm::Value *EmitNSAutoreleasePoolClassRef(CodeGenFunction &CGF) override;
1519 llvm::Value *EmitSuperClassRef(CodeGenFunction &CGF,
1524 llvm::Value *EmitMetaClassRef(CodeGenFunction &CGF,
1536 llvm::Value *EmitSelector(CodeGenFunction &CGF, Selector Sel);
1567 bool IsIvarOffsetKnownIdempotent(const CodeGen::CodeGenFunction &CGF, in IsIvarOffsetKnownIdempotent() argument
1584 dyn_cast_or_null<ObjCMethodDecl>(CGF.CurFuncDecl)) in IsIvarOffsetKnownIdempotent()
1607 CodeGen::RValue GenerateMessageSend(CodeGen::CodeGenFunction &CGF,
1616 GenerateMessageSendSuper(CodeGen::CodeGenFunction &CGF,
1623 llvm::Value *GetClass(CodeGenFunction &CGF,
1626 llvm::Value *GetSelector(CodeGenFunction &CGF, Selector Sel) override in GetSelector() argument
1627 { return EmitSelector(CGF, Sel); } in GetSelector()
1628 Address GetAddrOfSelector(CodeGenFunction &CGF, Selector Sel) override in GetAddrOfSelector() argument
1633 llvm::Value *GetSelector(CodeGenFunction &CGF, in GetSelector() argument
1635 { return EmitSelector(CGF, Method->getSelector()); } in GetSelector()
1643 llvm::Value *GenerateProtocolRef(CodeGenFunction &CGF,
1680 void EmitTryStmt(CodeGen::CodeGenFunction &CGF,
1682 void EmitSynchronizedStmt(CodeGen::CodeGenFunction &CGF,
1684 void EmitThrowStmt(CodeGen::CodeGenFunction &CGF, const ObjCAtThrowStmt &S,
1686 llvm::Value * EmitObjCWeakRead(CodeGen::CodeGenFunction &CGF,
1688 void EmitObjCWeakAssign(CodeGen::CodeGenFunction &CGF,
1690 void EmitObjCGlobalAssign(CodeGen::CodeGenFunction &CGF,
1693 void EmitObjCIvarAssign(CodeGen::CodeGenFunction &CGF,
1696 void EmitObjCStrongCastAssign(CodeGen::CodeGenFunction &CGF,
1698 void EmitGCMemmoveCollectable(CodeGen::CodeGenFunction &CGF,
1701 LValue EmitObjCValueForIvar(CodeGen::CodeGenFunction &CGF, QualType ObjectTy,
1704 llvm::Value *EmitIvarOffset(CodeGen::CodeGenFunction &CGF,
1716 void init(CodeGenFunction &CGF, llvm::Value *receiver) { in init()
1718 NullBB = CGF.createBasicBlock("msgSend.null-receiver"); in init()
1719 llvm::BasicBlock *callBB = CGF.createBasicBlock("msgSend.call"); in init()
1725 llvm::Value *isNull = CGF.Builder.CreateIsNull(receiver); in init()
1726 CGF.Builder.CreateCondBr(isNull, NullBB, callBB); in init()
1729 CGF.EmitBlock(callBB); in init()
1734 RValue complete(CodeGenFunction &CGF, in complete()
1748 llvm::BasicBlock *callBB = CGF.Builder.GetInsertBlock(); in complete()
1750 contBB = CGF.createBasicBlock("msgSend.cont"); in complete()
1751 CGF.Builder.CreateBr(contBB); in complete()
1755 CGF.EmitBlock(NullBB); in complete()
1764 RValue RV = I->getRValue(CGF); in complete()
1767 CGF.EmitARCRelease(RV.getScalarVal(), ARCImpreciseLifetime); in complete()
1772 RValue RV = I->getRValue(CGF); in complete()
1776 CGF.destroyCXXObject(CGF, RV.getAggregateAddress(), QT); in complete()
1779 CGF.destroyNonTrivialCStruct(CGF, RV.getAggregateAddress(), QT); in complete()
1791 assert(CGF.Builder.GetInsertBlock() == NullBB); in complete()
1796 if (contBB) CGF.EmitBlock(contBB); in complete()
1804 CGF.EmitFromMemory(CGF.CGM.EmitNullConstant(resultType), resultType); in complete()
1810 CGF.EmitBlock(contBB); in complete()
1811 llvm::PHINode *phi = CGF.Builder.CreatePHI(null->getType(), 2); in complete()
1824 CGF.EmitNullInitialization(result.getAggregateAddress(), resultType); in complete()
1825 if (contBB) CGF.EmitBlock(contBB); in complete()
1830 CGF.EmitBlock(contBB); in complete()
1838 llvm::PHINode *real = CGF.Builder.CreatePHI(scalarTy, 2); in complete()
1841 llvm::PHINode *imag = CGF.Builder.CreatePHI(scalarTy, 2); in complete()
1906 llvm::Value *CGObjCMac::GetClass(CodeGenFunction &CGF, in GetClass() argument
1908 return EmitClassRef(CGF, ID); in GetClass()
1912 llvm::Value *CGObjCMac::GetSelector(CodeGenFunction &CGF, Selector Sel) { in GetSelector() argument
1913 return EmitSelector(CGF, Sel); in GetSelector()
1915 Address CGObjCMac::GetAddrOfSelector(CodeGenFunction &CGF, Selector Sel) { in GetAddrOfSelector() argument
1918 llvm::Value *CGObjCMac::GetSelector(CodeGenFunction &CGF, const ObjCMethodDecl in GetSelector() argument
1920 return EmitSelector(CGF, Method->getSelector()); in GetSelector()
2078 CGObjCMac::GenerateMessageSendSuper(CodeGen::CodeGenFunction &CGF, in GenerateMessageSendSuper() argument
2091 CGF.CreateTempAlloca(ObjCTypes.SuperTy, CGF.getPointerAlign(), in GenerateMessageSendSuper()
2094 CGF.Builder.CreateBitCast(Receiver, ObjCTypes.ObjectPtrTy); in GenerateMessageSendSuper()
2095 CGF.Builder.CreateStore(ReceiverAsObject, in GenerateMessageSendSuper()
2096 CGF.Builder.CreateStructGEP(ObjCSuper, 0)); in GenerateMessageSendSuper()
2109 Target = EmitClassRef(CGF, Class->getSuperClass()); in GenerateMessageSendSuper()
2110 Target = CGF.Builder.CreateStructGEP(ObjCTypes.ClassTy, Target, 0); in GenerateMessageSendSuper()
2111 Target = CGF.Builder.CreateAlignedLoad(ClassTyPtr, Target, in GenerateMessageSendSuper()
2112 CGF.getPointerAlign()); in GenerateMessageSendSuper()
2116 CGF.Builder.CreateStructGEP(ObjCTypes.ClassTy, MetaClassPtr, 1); in GenerateMessageSendSuper()
2117 llvm::Value *Super = CGF.Builder.CreateAlignedLoad(ClassTyPtr, SuperPtr, in GenerateMessageSendSuper()
2118 CGF.getPointerAlign()); in GenerateMessageSendSuper()
2122 Target = EmitClassRef(CGF, Class->getSuperClass()); in GenerateMessageSendSuper()
2125 ClassPtr = CGF.Builder.CreateStructGEP(ObjCTypes.ClassTy, ClassPtr, 1); in GenerateMessageSendSuper()
2126 Target = CGF.Builder.CreateAlignedLoad(ClassTyPtr, ClassPtr, in GenerateMessageSendSuper()
2127 CGF.getPointerAlign()); in GenerateMessageSendSuper()
2132 CGM.getTypes().ConvertType(CGF.getContext().getObjCClassType()); in GenerateMessageSendSuper()
2133 Target = CGF.Builder.CreateBitCast(Target, ClassTy); in GenerateMessageSendSuper()
2134 CGF.Builder.CreateStore(Target, CGF.Builder.CreateStructGEP(ObjCSuper, 1)); in GenerateMessageSendSuper()
2135 return EmitMessageSend(CGF, Return, ResultType, Sel, ObjCSuper.getPointer(), in GenerateMessageSendSuper()
2141 CodeGen::RValue CGObjCMac::GenerateMessageSend(CodeGen::CodeGenFunction &CGF, in GenerateMessageSend() argument
2149 return EmitMessageSend(CGF, Return, ResultType, Sel, Receiver, in GenerateMessageSend()
2150 CGF.getContext().getObjCIdType(), false, CallArgs, in GenerateMessageSend()
2164 CGObjCCommonMac::EmitMessageSend(CodeGen::CodeGenFunction &CGF, in EmitMessageSend() argument
2176 auto selTy = CGF.getContext().getObjCSelType(); in EmitMessageSend()
2185 SelValue = GetSelector(CGF, Sel); in EmitMessageSend()
2190 Arg0 = CGF.Builder.CreateBitCast(Arg0, ObjCTypes.ObjectPtrTy); in EmitMessageSend()
2218 dyn_cast_or_null<ObjCMethodDecl>(CGF.CurCodeDecl)) { in EmitMessageSend()
2222 llvm::Value *SelfAddr = CGF.GetAddrOfLocalVar(Self).getPointer(); in EmitMessageSend()
2256 CGF.Builder.CreateBitCast(Fn.getCallee(), MSI.MessengerType)); in EmitMessageSend()
2275 nullReturn.init(CGF, Arg0); in EmitMessageSend()
2280 RValue rvalue = CGF.EmitCall(MSI.CallInfo, Callee, Return, ActualArgs, in EmitMessageSend()
2289 return nullReturn.complete(CGF, Return, rvalue, ResultType, CallArgs, in EmitMessageSend()
3026 llvm::Value *CGObjCMac::GenerateProtocolRef(CodeGenFunction &CGF, in GenerateProtocolRef() argument
3056 CodeGenFunction &CGF, in EmitClassRefViaRuntime() argument
3061 llvm::Value *className = CGF.CGM in EmitClassRefViaRuntime()
3065 ASTContext &ctx = CGF.CGM.getContext(); in EmitClassRefViaRuntime()
3067 CGF.Builder.CreateBitCast(className, in EmitClassRefViaRuntime()
3068 CGF.ConvertType( in EmitClassRefViaRuntime()
3070 llvm::CallInst *call = CGF.Builder.CreateCall(lookUpClassFn, className); in EmitClassRefViaRuntime()
4091 CodeGenFunction &CGF, llvm::Function *Fn, const ObjCMethodDecl *OMD, in GenerateDirectMethodPrologue() argument
4093 auto &Builder = CGF.Builder; in GenerateDirectMethodPrologue()
4095 auto selfAddr = CGF.GetAddrOfLocalVar(OMD->getSelfDecl()); in GenerateDirectMethodPrologue()
4116 auto ResultType = CGF.getContext().getObjCIdType(); in GenerateDirectMethodPrologue()
4128 CGF, ReturnValueSlot(), ResultType, SelfSel, selfValue, Args, OID, in GenerateDirectMethodPrologue()
4140 CGF.createBasicBlock("objc_direct_method.self_is_nil"); in GenerateDirectMethodPrologue()
4142 CGF.createBasicBlock("objc_direct_method.cont"); in GenerateDirectMethodPrologue()
4152 CGF.EmitBlock(SelfIsNilBlock); in GenerateDirectMethodPrologue()
4158 CGF.EmitNullInitialization(CGF.ReturnValue, retTy); in GenerateDirectMethodPrologue()
4160 CGF.EmitBranchThroughCleanup(CGF.ReturnBlock); in GenerateDirectMethodPrologue()
4164 CGF.EmitBlock(ContBlock); in GenerateDirectMethodPrologue()
4170 Builder.CreateStore(GetSelector(CGF, OMD), in GenerateDirectMethodPrologue()
4171 CGF.GetAddrOfLocalVar(OMD->getCmdDecl())); in GenerateDirectMethodPrologue()
4297 void CGObjCMac::EmitTryStmt(CodeGenFunction &CGF, const ObjCAtTryStmt &S) { in EmitTryStmt() argument
4298 return EmitTryOrSynchronizedStmt(CGF, S); in EmitTryStmt()
4301 void CGObjCMac::EmitSynchronizedStmt(CodeGenFunction &CGF, in EmitSynchronizedStmt() argument
4303 return EmitTryOrSynchronizedStmt(CGF, S); in EmitSynchronizedStmt()
4321 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
4325 CGF.createBasicBlock("finally.call_exit"); in Emit()
4327 CGF.createBasicBlock("finally.no_call_exit"); in Emit()
4328 CGF.Builder.CreateCondBr(CGF.Builder.CreateLoad(CallTryExitVar), in Emit()
4331 CGF.EmitBlock(FinallyCallExit); in Emit()
4332 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionTryExitFn(), in Emit()
4335 CGF.EmitBlock(FinallyNoCallExit); in Emit()
4346 CGF.Builder.CreateLoad(CGF.getNormalCleanupDestSlot()); in Emit()
4348 CGF.EmitStmt(FinallyStmt->getFinallyBody()); in Emit()
4350 if (CGF.HaveInsertPoint()) { in Emit()
4351 CGF.Builder.CreateStore(CurCleanupDest, in Emit()
4352 CGF.getNormalCleanupDestSlot()); in Emit()
4355 CGF.EnsureInsertPoint(); in Emit()
4361 llvm::Value *SyncArg = CGF.Builder.CreateLoad(SyncArgSlot); in Emit()
4362 CGF.EmitNounwindRuntimeCall(ObjCTypes.getSyncExitFn(), SyncArg); in Emit()
4368 CodeGenFunction &CGF; member in __anon0cc8f9a20811::FragileHazards
4381 FragileHazards(CodeGenFunction &CGF);
4393 FragileHazards::FragileHazards(CodeGenFunction &CGF) : CGF(CGF) { in FragileHazards() argument
4400 I = CGF.CurFn->begin(), E = CGF.CurFn->end(); I != E; ++I) in FragileHazards()
4439 CGF.EmitNounwindRuntimeCall(WriteHazard, Locals); in emitWriteHazard()
4446 call->setCallingConv(CGF.getRuntimeCC()); in emitReadHazard()
4454 CGBuilderTy Builder(CGF, CGF.getLLVMContext()); in emitHazardsInNewBlocks()
4458 FI = CGF.CurFn->begin(), FE = CGF.CurFn->end(); FI != FE; ++FI) { in emitHazardsInNewBlocks()
4497 addIfPresent(AllocasToIgnore, CGF.ReturnValue); in collectLocals()
4498 addIfPresent(AllocasToIgnore, CGF.NormalCleanupDest); in collectLocals()
4502 llvm::BasicBlock &Entry = CGF.CurFn->getEntryBlock(); in collectLocals()
4513 return llvm::FunctionType::get(CGF.VoidTy, tys, false); in GetAsmFnType()
4628 void CGObjCMac::EmitTryOrSynchronizedStmt(CodeGen::CodeGenFunction &CGF, in EmitTryOrSynchronizedStmt() argument
4635 CGF.getJumpDestInCurrentScope("finally.end"); in EmitTryOrSynchronizedStmt()
4640 CGF.getJumpDestInCurrentScope("finally.rethrow"); in EmitTryOrSynchronizedStmt()
4650 CGF.EmitScalarExpr(cast<ObjCAtSynchronizedStmt>(S).getSynchExpr()); in EmitTryOrSynchronizedStmt()
4651 SyncArg = CGF.Builder.CreateBitCast(SyncArg, ObjCTypes.ObjectPtrTy); in EmitTryOrSynchronizedStmt()
4652 CGF.EmitNounwindRuntimeCall(ObjCTypes.getSyncEnterFn(), SyncArg); in EmitTryOrSynchronizedStmt()
4654 SyncArgSlot = CGF.CreateTempAlloca(SyncArg->getType(), in EmitTryOrSynchronizedStmt()
4655 CGF.getPointerAlign(), "sync.arg"); in EmitTryOrSynchronizedStmt()
4656 CGF.Builder.CreateStore(SyncArg, SyncArgSlot); in EmitTryOrSynchronizedStmt()
4661 Address ExceptionData = CGF.CreateTempAlloca(ObjCTypes.ExceptionDataTy, in EmitTryOrSynchronizedStmt()
4662 CGF.getPointerAlign(), in EmitTryOrSynchronizedStmt()
4669 FragileHazards Hazards(CGF); in EmitTryOrSynchronizedStmt()
4679 Address CallTryExitVar = CGF.CreateTempAlloca(CGF.Builder.getInt1Ty(), in EmitTryOrSynchronizedStmt()
4688 CGF.EHStack.pushCleanup<PerformFragileFinally>(NormalAndEHCleanup, &S, in EmitTryOrSynchronizedStmt()
4697 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionTryEnterFn(), in EmitTryOrSynchronizedStmt()
4701 llvm::Constant *Zero = llvm::ConstantInt::get(CGF.Builder.getInt32Ty(), 0); in EmitTryOrSynchronizedStmt()
4703 llvm::Value *SetJmpBuffer = CGF.Builder.CreateGEP( in EmitTryOrSynchronizedStmt()
4706 llvm::CallInst *SetJmpResult = CGF.EmitNounwindRuntimeCall( in EmitTryOrSynchronizedStmt()
4712 llvm::BasicBlock *TryBlock = CGF.createBasicBlock("try"); in EmitTryOrSynchronizedStmt()
4713 llvm::BasicBlock *TryHandler = CGF.createBasicBlock("try.handler"); in EmitTryOrSynchronizedStmt()
4715 CGF.Builder.CreateIsNotNull(SetJmpResult, "did_catch_exception"); in EmitTryOrSynchronizedStmt()
4716 CGF.Builder.CreateCondBr(DidCatch, TryHandler, TryBlock); in EmitTryOrSynchronizedStmt()
4719 CGF.EmitBlock(TryBlock); in EmitTryOrSynchronizedStmt()
4720 CGF.Builder.CreateStore(CGF.Builder.getTrue(), CallTryExitVar); in EmitTryOrSynchronizedStmt()
4721 CGF.EmitStmt(isTry ? cast<ObjCAtTryStmt>(S).getTryBody() in EmitTryOrSynchronizedStmt()
4724 CGBuilderTy::InsertPoint TryFallthroughIP = CGF.Builder.saveAndClearIP(); in EmitTryOrSynchronizedStmt()
4727 CGF.EmitBlock(TryHandler); in EmitTryOrSynchronizedStmt()
4736 CGF.Builder.CreateStore(CGF.Builder.getFalse(), CallTryExitVar); in EmitTryOrSynchronizedStmt()
4737 CGF.EmitBranchThroughCleanup(FinallyRethrow); in EmitTryOrSynchronizedStmt()
4744 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionExtractFn(), in EmitTryOrSynchronizedStmt()
4749 CGF.ObjCEHValueStack.push_back(Caught); in EmitTryOrSynchronizedStmt()
4760 PropagatingExnVar = CGF.CreateTempAlloca(Caught->getType(), in EmitTryOrSynchronizedStmt()
4761 CGF.getPointerAlign(), in EmitTryOrSynchronizedStmt()
4763 CGF.Builder.CreateStore(Caught, PropagatingExnVar); in EmitTryOrSynchronizedStmt()
4767 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionTryEnterFn(), in EmitTryOrSynchronizedStmt()
4771 CGF.EmitNounwindRuntimeCall(ObjCTypes.getSetJmpFn(), in EmitTryOrSynchronizedStmt()
4776 CGF.Builder.CreateIsNotNull(SetJmpResult, "did_catch_exception"); in EmitTryOrSynchronizedStmt()
4778 CatchBlock = CGF.createBasicBlock("catch"); in EmitTryOrSynchronizedStmt()
4779 CatchHandler = CGF.createBasicBlock("catch_for_catch"); in EmitTryOrSynchronizedStmt()
4780 CGF.Builder.CreateCondBr(Threw, CatchHandler, CatchBlock); in EmitTryOrSynchronizedStmt()
4782 CGF.EmitBlock(CatchBlock); in EmitTryOrSynchronizedStmt()
4785 CGF.Builder.CreateStore(CGF.Builder.getInt1(HasFinally), CallTryExitVar); in EmitTryOrSynchronizedStmt()
4813 CodeGenFunction::RunCleanupsScope CatchVarCleanups(CGF); in EmitTryOrSynchronizedStmt()
4816 CGF.EmitAutoVarDecl(*CatchParam); in EmitTryOrSynchronizedStmt()
4817 assert(CGF.HaveInsertPoint() && "DeclStmt destroyed insert point?"); in EmitTryOrSynchronizedStmt()
4820 EmitInitOfCatchParam(CGF, Caught, CatchParam); in EmitTryOrSynchronizedStmt()
4823 CGF.EmitStmt(CatchStmt->getCatchBody()); in EmitTryOrSynchronizedStmt()
4828 CGF.EmitBranchThroughCleanup(FinallyEnd); in EmitTryOrSynchronizedStmt()
4840 llvm::Value *Class = EmitClassRef(CGF, IDecl); in EmitTryOrSynchronizedStmt()
4844 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionMatchFn(), in EmitTryOrSynchronizedStmt()
4847 llvm::BasicBlock *MatchedBlock = CGF.createBasicBlock("match"); in EmitTryOrSynchronizedStmt()
4848 llvm::BasicBlock *NextCatchBlock = CGF.createBasicBlock("catch.next"); in EmitTryOrSynchronizedStmt()
4850 CGF.Builder.CreateCondBr(CGF.Builder.CreateIsNotNull(Match, "matched"), in EmitTryOrSynchronizedStmt()
4854 CGF.EmitBlock(MatchedBlock); in EmitTryOrSynchronizedStmt()
4858 CodeGenFunction::RunCleanupsScope CatchVarCleanups(CGF); in EmitTryOrSynchronizedStmt()
4860 CGF.EmitAutoVarDecl(*CatchParam); in EmitTryOrSynchronizedStmt()
4861 assert(CGF.HaveInsertPoint() && "DeclStmt destroyed insert point?"); in EmitTryOrSynchronizedStmt()
4865 CGF.Builder.CreateBitCast(Caught, in EmitTryOrSynchronizedStmt()
4866 CGF.ConvertType(CatchParam->getType())); in EmitTryOrSynchronizedStmt()
4867 EmitInitOfCatchParam(CGF, Tmp, CatchParam); in EmitTryOrSynchronizedStmt()
4869 CGF.EmitStmt(CatchStmt->getCatchBody()); in EmitTryOrSynchronizedStmt()
4874 CGF.EmitBranchThroughCleanup(FinallyEnd); in EmitTryOrSynchronizedStmt()
4876 CGF.EmitBlock(NextCatchBlock); in EmitTryOrSynchronizedStmt()
4879 CGF.ObjCEHValueStack.pop_back(); in EmitTryOrSynchronizedStmt()
4887 CGF.EmitBranchThroughCleanup(FinallyRethrow); in EmitTryOrSynchronizedStmt()
4891 CGF.EmitBlock(CatchHandler); in EmitTryOrSynchronizedStmt()
4902 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionExtractFn(), in EmitTryOrSynchronizedStmt()
4904 CGF.Builder.CreateStore(NewCaught, PropagatingExnVar); in EmitTryOrSynchronizedStmt()
4907 CGF.Builder.CreateStore(CGF.Builder.getFalse(), CallTryExitVar); in EmitTryOrSynchronizedStmt()
4908 CGF.EmitBranchThroughCleanup(FinallyRethrow); in EmitTryOrSynchronizedStmt()
4916 CGF.Builder.restoreIP(TryFallthroughIP); in EmitTryOrSynchronizedStmt()
4917 if (CGF.HaveInsertPoint()) in EmitTryOrSynchronizedStmt()
4918 CGF.Builder.CreateStore(CGF.Builder.getTrue(), CallTryExitVar); in EmitTryOrSynchronizedStmt()
4919 CGF.PopCleanupBlock(); in EmitTryOrSynchronizedStmt()
4920 CGF.EmitBlock(FinallyEnd.getBlock(), true); in EmitTryOrSynchronizedStmt()
4923 CGBuilderTy::InsertPoint SavedIP = CGF.Builder.saveAndClearIP(); in EmitTryOrSynchronizedStmt()
4924 CGF.EmitBlock(FinallyRethrow.getBlock(), true); in EmitTryOrSynchronizedStmt()
4925 if (CGF.HaveInsertPoint()) { in EmitTryOrSynchronizedStmt()
4929 PropagatingExn = CGF.Builder.CreateLoad(PropagatingExnVar); in EmitTryOrSynchronizedStmt()
4934 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionExtractFn(), in EmitTryOrSynchronizedStmt()
4939 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionThrowFn(), in EmitTryOrSynchronizedStmt()
4941 CGF.Builder.CreateUnreachable(); in EmitTryOrSynchronizedStmt()
4944 CGF.Builder.restoreIP(SavedIP); in EmitTryOrSynchronizedStmt()
4947 void CGObjCMac::EmitThrowStmt(CodeGen::CodeGenFunction &CGF, in EmitThrowStmt() argument
4953 llvm::Value *Exception = CGF.EmitObjCThrowOperand(ThrowExpr); in EmitThrowStmt()
4955 CGF.Builder.CreateBitCast(Exception, ObjCTypes.ObjectPtrTy); in EmitThrowStmt()
4957 assert((!CGF.ObjCEHValueStack.empty() && CGF.ObjCEHValueStack.back()) && in EmitThrowStmt()
4959 ExceptionAsObject = CGF.ObjCEHValueStack.back(); in EmitThrowStmt()
4962 CGF.EmitRuntimeCall(ObjCTypes.getExceptionThrowFn(), ExceptionAsObject) in EmitThrowStmt()
4964 CGF.Builder.CreateUnreachable(); in EmitThrowStmt()
4968 CGF.Builder.ClearInsertionPoint(); in EmitThrowStmt()
4974 llvm::Value * CGObjCMac::EmitObjCWeakRead(CodeGen::CodeGenFunction &CGF, in EmitObjCWeakRead() argument
4977 AddrWeakObj = CGF.Builder.CreateBitCast(AddrWeakObj, in EmitObjCWeakRead()
4980 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcReadWeakFn(), in EmitObjCWeakRead()
4982 read_weak = CGF.Builder.CreateBitCast(read_weak, DestTy); in EmitObjCWeakRead()
4989 void CGObjCMac::EmitObjCWeakAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCWeakAssign() argument
4995 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, CGM.Int32Ty) in EmitObjCWeakAssign()
4996 : CGF.Builder.CreateBitCast(src, CGM.Int64Ty); in EmitObjCWeakAssign()
4997 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCWeakAssign()
4999 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCWeakAssign()
5000 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy); in EmitObjCWeakAssign()
5002 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignWeakFn(), in EmitObjCWeakAssign()
5009 void CGObjCMac::EmitObjCGlobalAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCGlobalAssign() argument
5016 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, CGM.Int32Ty) in EmitObjCGlobalAssign()
5017 : CGF.Builder.CreateBitCast(src, CGM.Int64Ty); in EmitObjCGlobalAssign()
5018 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCGlobalAssign()
5020 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCGlobalAssign()
5021 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy); in EmitObjCGlobalAssign()
5024 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignGlobalFn(), in EmitObjCGlobalAssign()
5027 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignThreadLocalFn(), in EmitObjCGlobalAssign()
5034 void CGObjCMac::EmitObjCIvarAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCIvarAssign() argument
5042 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, CGM.Int32Ty) in EmitObjCIvarAssign()
5043 : CGF.Builder.CreateBitCast(src, CGM.Int64Ty); in EmitObjCIvarAssign()
5044 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCIvarAssign()
5046 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCIvarAssign()
5047 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy); in EmitObjCIvarAssign()
5049 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignIvarFn(), args); in EmitObjCIvarAssign()
5055 void CGObjCMac::EmitObjCStrongCastAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCStrongCastAssign() argument
5061 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, CGM.Int32Ty) in EmitObjCStrongCastAssign()
5062 : CGF.Builder.CreateBitCast(src, CGM.Int64Ty); in EmitObjCStrongCastAssign()
5063 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCStrongCastAssign()
5065 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCStrongCastAssign()
5066 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy); in EmitObjCStrongCastAssign()
5068 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignStrongCastFn(), in EmitObjCStrongCastAssign()
5072 void CGObjCMac::EmitGCMemmoveCollectable(CodeGen::CodeGenFunction &CGF, in EmitGCMemmoveCollectable() argument
5076 SrcPtr = CGF.Builder.CreateBitCast(SrcPtr, ObjCTypes.Int8PtrTy); in EmitGCMemmoveCollectable()
5077 DestPtr = CGF.Builder.CreateBitCast(DestPtr, ObjCTypes.Int8PtrTy); in EmitGCMemmoveCollectable()
5079 CGF.EmitNounwindRuntimeCall(ObjCTypes.GcMemmoveCollectableFn(), args); in EmitGCMemmoveCollectable()
5084 LValue CGObjCMac::EmitObjCValueForIvar(CodeGen::CodeGenFunction &CGF, in EmitObjCValueForIvar() argument
5091 return EmitValueForIvarAtOffset(CGF, ID, BaseValue, Ivar, CVRQualifiers, in EmitObjCValueForIvar()
5092 EmitIvarOffset(CGF, ID, Ivar)); in EmitObjCValueForIvar()
5095 llvm::Value *CGObjCMac::EmitIvarOffset(CodeGen::CodeGenFunction &CGF, in EmitIvarOffset() argument
5275 llvm::Value *CGObjCMac::EmitClassRefFromId(CodeGenFunction &CGF, in EmitClassRefFromId() argument
5291 return CGF.Builder.CreateAlignedLoad(Entry->getValueType(), Entry, in EmitClassRefFromId()
5292 CGF.getPointerAlign()); in EmitClassRefFromId()
5295 llvm::Value *CGObjCMac::EmitClassRef(CodeGenFunction &CGF, in EmitClassRef() argument
5300 return EmitClassRefViaRuntime(CGF, ID, ObjCTypes); in EmitClassRef()
5304 return EmitClassRefFromId(CGF, RuntimeName); in EmitClassRef()
5307 llvm::Value *CGObjCMac::EmitNSAutoreleasePoolClassRef(CodeGenFunction &CGF) { in EmitNSAutoreleasePoolClassRef() argument
5309 return EmitClassRefFromId(CGF, II); in EmitNSAutoreleasePoolClassRef()
5312 llvm::Value *CGObjCMac::EmitSelector(CodeGenFunction &CGF, Selector Sel) { in EmitSelector() argument
5313 return CGF.Builder.CreateLoad(EmitSelectorAddr(Sel)); in EmitSelector()
6671 llvm::Value *CGObjCNonFragileABIMac::GenerateProtocolRef(CodeGenFunction &CGF, in GenerateProtocolRef() argument
6685 CharUnits Align = CGF.getPointerAlign(); in GenerateProtocolRef()
6689 return CGF.Builder.CreateAlignedLoad(PTGV->getValueType(), PTGV, Align); in GenerateProtocolRef()
6700 return CGF.Builder.CreateAlignedLoad(PTGV->getValueType(), PTGV, Align); in GenerateProtocolRef()
7230 CodeGen::CodeGenFunction &CGF, in EmitObjCValueForIvar() argument
7236 llvm::Value *Offset = EmitIvarOffset(CGF, ID, Ivar); in EmitObjCValueForIvar()
7237 return EmitValueForIvarAtOffset(CGF, ID, BaseValue, Ivar, CVRQualifiers, in EmitObjCValueForIvar()
7242 CGObjCNonFragileABIMac::EmitIvarOffset(CodeGen::CodeGenFunction &CGF, in EmitIvarOffset() argument
7253 CGF.Builder.CreateAlignedLoad(GV->getValueType(), GV, in EmitIvarOffset()
7254 CGF.getSizeAlign(), "ivar"); in EmitIvarOffset()
7255 if (IsIvarOffsetKnownIdempotent(CGF, Ivar)) in EmitIvarOffset()
7265 IvarOffsetValue = CGF.Builder.CreateIntCast( in EmitIvarOffset()
7294 CGObjCNonFragileABIMac::EmitVTableMessageSend(CodeGenFunction &CGF, in EmitVTableMessageSend() argument
7308 arg0 = CGF.Builder.CreateBitCast(arg0, ObjCTypes.ObjectPtrTy); in EmitVTableMessageSend()
7335 nullReturn.init(CGF, arg0); in EmitVTableMessageSend()
7379 nullReturn.init(CGF, arg0); in EmitVTableMessageSend()
7386 Address(CGF.Builder.CreateBitCast(messageRef, ObjCTypes.MessageRefPtrTy), in EmitVTableMessageSend()
7387 CGF.getPointerAlign()); in EmitVTableMessageSend()
7393 Address calleeAddr = CGF.Builder.CreateStructGEP(mref, 0); in EmitVTableMessageSend()
7394 llvm::Value *calleePtr = CGF.Builder.CreateLoad(calleeAddr, "msgSend_fn"); in EmitVTableMessageSend()
7396 calleePtr = CGF.Builder.CreateBitCast(calleePtr, MSI.MessengerType); in EmitVTableMessageSend()
7399 RValue result = CGF.EmitCall(MSI.CallInfo, callee, returnSlot, args); in EmitVTableMessageSend()
7400 return nullReturn.complete(CGF, returnSlot, result, resultType, formalArgs, in EmitVTableMessageSend()
7406 CGObjCNonFragileABIMac::GenerateMessageSend(CodeGen::CodeGenFunction &CGF, in GenerateMessageSend() argument
7415 ? EmitVTableMessageSend(CGF, Return, ResultType, Sel, in GenerateMessageSend()
7416 Receiver, CGF.getContext().getObjCIdType(), in GenerateMessageSend()
7418 : EmitMessageSend(CGF, Return, ResultType, Sel, in GenerateMessageSend()
7419 Receiver, CGF.getContext().getObjCIdType(), in GenerateMessageSend()
7483 CGObjCNonFragileABIMac::EmitLoadOfClassRef(CodeGenFunction &CGF, in EmitLoadOfClassRef() argument
7489 return CGF.EmitRuntimeCall( in EmitLoadOfClassRef()
7493 CharUnits Align = CGF.getPointerAlign(); in EmitLoadOfClassRef()
7494 return CGF.Builder.CreateAlignedLoad(Entry->getValueType(), Entry, Align); in EmitLoadOfClassRef()
7498 CGObjCNonFragileABIMac::EmitClassRefFromId(CodeGenFunction &CGF, in EmitClassRefFromId() argument
7520 Entry->setAlignment(CGF.getPointerAlign().getAsAlign()); in EmitClassRefFromId()
7527 return EmitLoadOfClassRef(CGF, ID, Entry); in EmitClassRefFromId()
7530 llvm::Value *CGObjCNonFragileABIMac::EmitClassRef(CodeGenFunction &CGF, in EmitClassRef() argument
7535 return EmitClassRefViaRuntime(CGF, ID, ObjCTypes); in EmitClassRef()
7537 return EmitClassRefFromId(CGF, ID->getIdentifier(), ID); in EmitClassRef()
7541 CodeGenFunction &CGF) { in EmitNSAutoreleasePoolClassRef() argument
7543 return EmitClassRefFromId(CGF, II, nullptr); in EmitNSAutoreleasePoolClassRef()
7547 CGObjCNonFragileABIMac::EmitSuperClassRef(CodeGenFunction &CGF, in EmitSuperClassRef() argument
7558 Entry->setAlignment(CGF.getPointerAlign().getAsAlign()); in EmitSuperClassRef()
7563 return EmitLoadOfClassRef(CGF, ID, Entry); in EmitSuperClassRef()
7569 llvm::Value *CGObjCNonFragileABIMac::EmitMetaClassRef(CodeGenFunction &CGF, in EmitMetaClassRef() argument
7572 CharUnits Align = CGF.getPointerAlign(); in EmitMetaClassRef()
7586 return CGF.Builder.CreateAlignedLoad(ObjCTypes.ClassnfABIPtrTy, Entry, Align); in EmitMetaClassRef()
7591 llvm::Value *CGObjCNonFragileABIMac::GetClass(CodeGenFunction &CGF, in GetClass() argument
7600 return EmitClassRef(CGF, ID); in GetClass()
7607 CGObjCNonFragileABIMac::GenerateMessageSendSuper(CodeGen::CodeGenFunction &CGF, in GenerateMessageSendSuper() argument
7621 CGF.CreateTempAlloca(ObjCTypes.SuperTy, CGF.getPointerAlign(), in GenerateMessageSendSuper()
7625 CGF.Builder.CreateBitCast(Receiver, ObjCTypes.ObjectPtrTy); in GenerateMessageSendSuper()
7626 CGF.Builder.CreateStore(ReceiverAsObject, in GenerateMessageSendSuper()
7627 CGF.Builder.CreateStructGEP(ObjCSuper, 0)); in GenerateMessageSendSuper()
7632 Target = EmitMetaClassRef(CGF, Class, Class->isWeakImported()); in GenerateMessageSendSuper()
7634 Target = EmitSuperClassRef(CGF, Class); in GenerateMessageSendSuper()
7639 CGM.getTypes().ConvertType(CGF.getContext().getObjCClassType()); in GenerateMessageSendSuper()
7640 Target = CGF.Builder.CreateBitCast(Target, ClassTy); in GenerateMessageSendSuper()
7641 CGF.Builder.CreateStore(Target, CGF.Builder.CreateStructGEP(ObjCSuper, 1)); in GenerateMessageSendSuper()
7644 ? EmitVTableMessageSend(CGF, Return, ResultType, Sel, in GenerateMessageSendSuper()
7647 : EmitMessageSend(CGF, Return, ResultType, Sel, in GenerateMessageSendSuper()
7652 llvm::Value *CGObjCNonFragileABIMac::EmitSelector(CodeGenFunction &CGF, in EmitSelector() argument
7656 llvm::LoadInst* LI = CGF.Builder.CreateLoad(Addr); in EmitSelector()
7687 void CGObjCNonFragileABIMac::EmitObjCIvarAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCIvarAssign() argument
7695 src = (Size == 4 ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy) in EmitObjCIvarAssign()
7696 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongTy)); in EmitObjCIvarAssign()
7697 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCIvarAssign()
7699 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCIvarAssign()
7700 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy); in EmitObjCIvarAssign()
7702 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignIvarFn(), args); in EmitObjCIvarAssign()
7709 CodeGen::CodeGenFunction &CGF, in EmitObjCStrongCastAssign() argument
7715 src = (Size == 4 ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy) in EmitObjCStrongCastAssign()
7716 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongTy)); in EmitObjCStrongCastAssign()
7717 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCStrongCastAssign()
7719 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCStrongCastAssign()
7720 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy); in EmitObjCStrongCastAssign()
7722 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignStrongCastFn(), in EmitObjCStrongCastAssign()
7727 CodeGen::CodeGenFunction &CGF, in EmitGCMemmoveCollectable() argument
7731 SrcPtr = CGF.Builder.CreateBitCast(SrcPtr, ObjCTypes.Int8PtrTy); in EmitGCMemmoveCollectable()
7732 DestPtr = CGF.Builder.CreateBitCast(DestPtr, ObjCTypes.Int8PtrTy); in EmitGCMemmoveCollectable()
7734 CGF.EmitNounwindRuntimeCall(ObjCTypes.GcMemmoveCollectableFn(), args); in EmitGCMemmoveCollectable()
7741 CodeGen::CodeGenFunction &CGF, in EmitObjCWeakRead() argument
7744 AddrWeakObj = CGF.Builder.CreateBitCast(AddrWeakObj, ObjCTypes.PtrObjectPtrTy); in EmitObjCWeakRead()
7746 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcReadWeakFn(), in EmitObjCWeakRead()
7748 read_weak = CGF.Builder.CreateBitCast(read_weak, DestTy); in EmitObjCWeakRead()
7755 void CGObjCNonFragileABIMac::EmitObjCWeakAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCWeakAssign() argument
7761 src = (Size == 4 ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy) in EmitObjCWeakAssign()
7762 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongTy)); in EmitObjCWeakAssign()
7763 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCWeakAssign()
7765 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCWeakAssign()
7766 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy); in EmitObjCWeakAssign()
7768 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignWeakFn(), in EmitObjCWeakAssign()
7775 void CGObjCNonFragileABIMac::EmitObjCGlobalAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCGlobalAssign() argument
7782 src = (Size == 4 ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy) in EmitObjCGlobalAssign()
7783 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongTy)); in EmitObjCGlobalAssign()
7784 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCGlobalAssign()
7786 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCGlobalAssign()
7787 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy); in EmitObjCGlobalAssign()
7790 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignGlobalFn(), in EmitObjCGlobalAssign()
7793 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignThreadLocalFn(), in EmitObjCGlobalAssign()
7798 CGObjCNonFragileABIMac::EmitSynchronizedStmt(CodeGen::CodeGenFunction &CGF, in EmitSynchronizedStmt() argument
7800 EmitAtSynchronizedStmt(CGF, S, ObjCTypes.getSyncEnterFn(), in EmitSynchronizedStmt()
7830 void CGObjCNonFragileABIMac::EmitTryStmt(CodeGen::CodeGenFunction &CGF, in EmitTryStmt() argument
7832 EmitTryCatchStmt(CGF, S, ObjCTypes.getObjCBeginCatchFn(), in EmitTryStmt()
7838 void CGObjCNonFragileABIMac::EmitThrowStmt(CodeGen::CodeGenFunction &CGF, in EmitThrowStmt() argument
7842 llvm::Value *Exception = CGF.EmitObjCThrowOperand(ThrowExpr); in EmitThrowStmt()
7843 Exception = CGF.Builder.CreateBitCast(Exception, ObjCTypes.ObjectPtrTy); in EmitThrowStmt()
7845 CGF.EmitRuntimeCallOrInvoke(ObjCTypes.getExceptionThrowFn(), Exception); in EmitThrowStmt()
7849 CGF.EmitRuntimeCallOrInvoke(ObjCTypes.getExceptionRethrowFn()); in EmitThrowStmt()
7853 CGF.Builder.CreateUnreachable(); in EmitThrowStmt()
7855 CGF.Builder.ClearInsertionPoint(); in EmitThrowStmt()