Lines Matching refs:CGF
995 llvm::Value *EmitClassRefViaRuntime(CodeGenFunction &CGF,
1030 CodeGen::RValue EmitMessageSend(CodeGen::CodeGenFunction &CGF,
1059 void GenerateDirectMethodPrologue(CodeGenFunction &CGF, llvm::Function *Fn,
1197 llvm::Value *EmitClassRef(CodeGenFunction &CGF, const ObjCInterfaceDecl *ID);
1199 llvm::Value *EmitClassRefFromId(CodeGenFunction &CGF, IdentifierInfo *II);
1201 llvm::Value *EmitNSAutoreleasePoolClassRef(CodeGenFunction &CGF) override;
1261 llvm::Value *EmitSelector(CodeGenFunction &CGF, Selector Sel);
1271 CodeGen::RValue GenerateMessageSend(CodeGen::CodeGenFunction &CGF,
1280 CodeGen::CodeGenFunction &CGF, ReturnValueSlot Return,
1285 llvm::Value *GetClass(CodeGenFunction &CGF,
1288 llvm::Value *GetSelector(CodeGenFunction &CGF, Selector Sel) override;
1289 Address GetAddrOfSelector(CodeGenFunction &CGF, Selector Sel) override;
1293 llvm::Value *GetSelector(CodeGenFunction &CGF,
1304 llvm::Value *GenerateProtocolRef(CodeGenFunction &CGF,
1317 void EmitTryStmt(CodeGen::CodeGenFunction &CGF,
1319 void EmitSynchronizedStmt(CodeGen::CodeGenFunction &CGF,
1321 void EmitTryOrSynchronizedStmt(CodeGen::CodeGenFunction &CGF, const Stmt &S);
1322 void EmitThrowStmt(CodeGen::CodeGenFunction &CGF, const ObjCAtThrowStmt &S,
1324 llvm::Value *EmitObjCWeakRead(CodeGen::CodeGenFunction &CGF,
1326 void EmitObjCWeakAssign(CodeGen::CodeGenFunction &CGF, llvm::Value *src,
1328 void EmitObjCGlobalAssign(CodeGen::CodeGenFunction &CGF, llvm::Value *src,
1330 void EmitObjCIvarAssign(CodeGen::CodeGenFunction &CGF, llvm::Value *src,
1332 void EmitObjCStrongCastAssign(CodeGen::CodeGenFunction &CGF, llvm::Value *src,
1334 void EmitGCMemmoveCollectable(CodeGen::CodeGenFunction &CGF, Address dest,
1337 LValue EmitObjCValueForIvar(CodeGen::CodeGenFunction &CGF, QualType ObjectTy,
1340 llvm::Value *EmitIvarOffset(CodeGen::CodeGenFunction &CGF,
1427 CodeGen::CodeGenFunction &CGF, ReturnValueSlot Return,
1441 llvm::Value *EmitLoadOfClassRef(CodeGenFunction &CGF,
1447 llvm::Value *EmitClassRef(CodeGenFunction &CGF, const ObjCInterfaceDecl *ID);
1449 llvm::Value *EmitClassRefFromId(CodeGenFunction &CGF, IdentifierInfo *II,
1452 llvm::Value *EmitNSAutoreleasePoolClassRef(CodeGenFunction &CGF) override;
1456 llvm::Value *EmitSuperClassRef(CodeGenFunction &CGF,
1461 llvm::Value *EmitMetaClassRef(CodeGenFunction &CGF,
1472 llvm::Value *EmitSelector(CodeGenFunction &CGF, Selector Sel);
1502 bool IsIvarOffsetKnownIdempotent(const CodeGen::CodeGenFunction &CGF, in IsIvarOffsetKnownIdempotent() argument
1519 dyn_cast_or_null<ObjCMethodDecl>(CGF.CurFuncDecl)) in IsIvarOffsetKnownIdempotent()
1553 CodeGen::RValue GenerateMessageSend(CodeGen::CodeGenFunction &CGF,
1562 CodeGen::CodeGenFunction &CGF, ReturnValueSlot Return,
1567 llvm::Value *GetClass(CodeGenFunction &CGF,
1570 llvm::Value *GetSelector(CodeGenFunction &CGF, Selector Sel) override { in GetSelector() argument
1571 return EmitSelector(CGF, Sel); in GetSelector()
1573 Address GetAddrOfSelector(CodeGenFunction &CGF, Selector Sel) override { in GetAddrOfSelector() argument
1579 llvm::Value *GetSelector(CodeGenFunction &CGF, in GetSelector() argument
1581 return EmitSelector(CGF, Method->getSelector()); in GetSelector()
1590 llvm::Value *GenerateProtocolRef(CodeGenFunction &CGF,
1627 void EmitTryStmt(CodeGen::CodeGenFunction &CGF,
1629 void EmitSynchronizedStmt(CodeGen::CodeGenFunction &CGF,
1631 void EmitThrowStmt(CodeGen::CodeGenFunction &CGF, const ObjCAtThrowStmt &S,
1633 llvm::Value *EmitObjCWeakRead(CodeGen::CodeGenFunction &CGF,
1635 void EmitObjCWeakAssign(CodeGen::CodeGenFunction &CGF, llvm::Value *src,
1637 void EmitObjCGlobalAssign(CodeGen::CodeGenFunction &CGF, llvm::Value *src,
1639 void EmitObjCIvarAssign(CodeGen::CodeGenFunction &CGF, llvm::Value *src,
1641 void EmitObjCStrongCastAssign(CodeGen::CodeGenFunction &CGF, llvm::Value *src,
1643 void EmitGCMemmoveCollectable(CodeGen::CodeGenFunction &CGF, Address dest,
1645 LValue EmitObjCValueForIvar(CodeGen::CodeGenFunction &CGF, QualType ObjectTy,
1648 llvm::Value *EmitIvarOffset(CodeGen::CodeGenFunction &CGF,
1660 void init(CodeGenFunction &CGF, llvm::Value *receiver) { in init()
1662 NullBB = CGF.createBasicBlock("msgSend.null-receiver"); in init()
1663 llvm::BasicBlock *callBB = CGF.createBasicBlock("msgSend.call"); in init()
1669 llvm::Value *isNull = CGF.Builder.CreateIsNull(receiver); in init()
1670 CGF.Builder.CreateCondBr(isNull, NullBB, callBB); in init()
1673 CGF.EmitBlock(callBB); in init()
1678 RValue complete(CodeGenFunction &CGF, ReturnValueSlot returnSlot, in complete()
1690 llvm::BasicBlock *callBB = CGF.Builder.GetInsertBlock(); in complete()
1692 contBB = CGF.createBasicBlock("msgSend.cont"); in complete()
1693 CGF.Builder.CreateBr(contBB); in complete()
1697 CGF.EmitBlock(NullBB); in complete()
1701 CGObjCRuntime::destroyCalleeDestroyedArguments(CGF, Method, CallArgs); in complete()
1705 assert(CGF.Builder.GetInsertBlock() == NullBB); in complete()
1711 CGF.EmitBlock(contBB); in complete()
1719 CGF.EmitFromMemory(CGF.CGM.EmitNullConstant(resultType), resultType); in complete()
1726 CGF.EmitBlock(contBB); in complete()
1727 llvm::PHINode *phi = CGF.Builder.CreatePHI(null->getType(), 2); in complete()
1740 CGF.EmitNullInitialization(result.getAggregateAddress(), resultType); in complete()
1742 CGF.EmitBlock(contBB); in complete()
1747 CGF.EmitBlock(contBB); in complete()
1755 llvm::PHINode *real = CGF.Builder.CreatePHI(scalarTy, 2); in complete()
1758 llvm::PHINode *imag = CGF.Builder.CreatePHI(scalarTy, 2); in complete()
1822 llvm::Value *CGObjCMac::GetClass(CodeGenFunction &CGF, in GetClass() argument
1824 return EmitClassRef(CGF, ID); in GetClass()
1828 llvm::Value *CGObjCMac::GetSelector(CodeGenFunction &CGF, Selector Sel) { in GetSelector() argument
1829 return EmitSelector(CGF, Sel); in GetSelector()
1831 Address CGObjCMac::GetAddrOfSelector(CodeGenFunction &CGF, Selector Sel) { in GetAddrOfSelector() argument
1834 llvm::Value *CGObjCMac::GetSelector(CodeGenFunction &CGF, in GetSelector() argument
1836 return EmitSelector(CGF, Method->getSelector()); in GetSelector()
1983 CodeGen::CodeGenFunction &CGF, ReturnValueSlot Return, QualType ResultType, in GenerateMessageSendSuper() argument
1989 RawAddress ObjCSuper = CGF.CreateTempAlloca( in GenerateMessageSendSuper()
1990 ObjCTypes.SuperTy, CGF.getPointerAlign(), "objc_super"); in GenerateMessageSendSuper()
1992 CGF.Builder.CreateBitCast(Receiver, ObjCTypes.ObjectPtrTy); in GenerateMessageSendSuper()
1993 CGF.Builder.CreateStore(ReceiverAsObject, in GenerateMessageSendSuper()
1994 CGF.Builder.CreateStructGEP(ObjCSuper, 0)); in GenerateMessageSendSuper()
2007 Target = EmitClassRef(CGF, Class->getSuperClass()); in GenerateMessageSendSuper()
2008 Target = CGF.Builder.CreateStructGEP(ObjCTypes.ClassTy, Target, 0); in GenerateMessageSendSuper()
2009 Target = CGF.Builder.CreateAlignedLoad(ClassTyPtr, Target, in GenerateMessageSendSuper()
2010 CGF.getPointerAlign()); in GenerateMessageSendSuper()
2014 CGF.Builder.CreateStructGEP(ObjCTypes.ClassTy, MetaClassPtr, 1); in GenerateMessageSendSuper()
2015 llvm::Value *Super = CGF.Builder.CreateAlignedLoad(ClassTyPtr, SuperPtr, in GenerateMessageSendSuper()
2016 CGF.getPointerAlign()); in GenerateMessageSendSuper()
2020 Target = EmitClassRef(CGF, Class->getSuperClass()); in GenerateMessageSendSuper()
2023 ClassPtr = CGF.Builder.CreateStructGEP(ObjCTypes.ClassTy, ClassPtr, 1); in GenerateMessageSendSuper()
2024 Target = CGF.Builder.CreateAlignedLoad(ClassTyPtr, ClassPtr, in GenerateMessageSendSuper()
2025 CGF.getPointerAlign()); in GenerateMessageSendSuper()
2030 CGM.getTypes().ConvertType(CGF.getContext().getObjCClassType()); in GenerateMessageSendSuper()
2031 Target = CGF.Builder.CreateBitCast(Target, ClassTy); in GenerateMessageSendSuper()
2032 CGF.Builder.CreateStore(Target, CGF.Builder.CreateStructGEP(ObjCSuper, 1)); in GenerateMessageSendSuper()
2033 return EmitMessageSend(CGF, Return, ResultType, Sel, ObjCSuper.getPointer(), in GenerateMessageSendSuper()
2040 CodeGen::CodeGenFunction &CGF, ReturnValueSlot Return, QualType ResultType, in GenerateMessageSend() argument
2043 return EmitMessageSend(CGF, Return, ResultType, Sel, Receiver, in GenerateMessageSend()
2044 CGF.getContext().getObjCIdType(), false, CallArgs, in GenerateMessageSend()
2049 CodeGen::CodeGenFunction &CGF, ReturnValueSlot Return, QualType ResultType, in EmitMessageSend() argument
2055 auto selTy = CGF.getContext().getObjCSelType(); in EmitMessageSend()
2060 Arg0 = CGF.Builder.CreateBitCast(Arg0, ObjCTypes.ObjectPtrTy); in EmitMessageSend()
2075 canMessageReceiverBeNull(CGF, Method, IsSuper, ClassReceiver, Arg0); in EmitMessageSend()
2109 CGF.Builder.CreateBitCast(Fn.getCallee(), MSI.MessengerType)); in EmitMessageSend()
2122 nullReturn.init(CGF, Arg0); in EmitMessageSend()
2127 SelValue = GetSelector(CGF, Sel); in EmitMessageSend()
2134 CGF.EmitCall(MSI.CallInfo, Callee, Return, ActualArgs, &CallSite); in EmitMessageSend()
2142 return nullReturn.complete(CGF, Return, rvalue, ResultType, CallArgs, in EmitMessageSend()
2880 llvm::Value *CGObjCMac::GenerateProtocolRef(CodeGenFunction &CGF, in GenerateProtocolRef() argument
2909 CGObjCCommonMac::EmitClassRefViaRuntime(CodeGenFunction &CGF, in EmitClassRefViaRuntime() argument
2914 llvm::Value *className = CGF.CGM in EmitClassRefViaRuntime()
2918 ASTContext &ctx = CGF.CGM.getContext(); in EmitClassRefViaRuntime()
2919 className = CGF.Builder.CreateBitCast( in EmitClassRefViaRuntime()
2920 className, CGF.ConvertType(ctx.getPointerType(ctx.CharTy.withConst()))); in EmitClassRefViaRuntime()
2921 llvm::CallInst *call = CGF.Builder.CreateCall(lookUpClassFn, className); in EmitClassRefViaRuntime()
3913 CodeGenFunction &CGF, llvm::Function *Fn, const ObjCMethodDecl *OMD, in GenerateDirectMethodPrologue() argument
3915 auto &Builder = CGF.Builder; in GenerateDirectMethodPrologue()
3917 auto selfAddr = CGF.GetAddrOfLocalVar(OMD->getSelfDecl()); in GenerateDirectMethodPrologue()
3938 auto ResultType = CGF.getContext().getObjCIdType(); in GenerateDirectMethodPrologue()
3950 CGF, ReturnValueSlot(), ResultType, SelfSel, selfValue, Args, OID, in GenerateDirectMethodPrologue()
3962 CGF.createBasicBlock("objc_direct_method.self_is_nil"); in GenerateDirectMethodPrologue()
3964 CGF.createBasicBlock("objc_direct_method.cont"); in GenerateDirectMethodPrologue()
3974 CGF.EmitBlock(SelfIsNilBlock); in GenerateDirectMethodPrologue()
3980 CGF.EmitNullInitialization(CGF.ReturnValue, retTy); in GenerateDirectMethodPrologue()
3982 CGF.EmitBranchThroughCleanup(CGF.ReturnBlock); in GenerateDirectMethodPrologue()
3986 CGF.EmitBlock(ContBlock); in GenerateDirectMethodPrologue()
3994 CGF.EmitVarDecl(*OMD->getCmdDecl()); in GenerateDirectMethodPrologue()
3995 Builder.CreateStore(GetSelector(CGF, OMD), in GenerateDirectMethodPrologue()
3996 CGF.GetAddrOfLocalVar(OMD->getCmdDecl())); in GenerateDirectMethodPrologue()
4128 void CGObjCMac::EmitTryStmt(CodeGenFunction &CGF, const ObjCAtTryStmt &S) { in EmitTryStmt() argument
4129 return EmitTryOrSynchronizedStmt(CGF, S); in EmitTryStmt()
4132 void CGObjCMac::EmitSynchronizedStmt(CodeGenFunction &CGF, in EmitSynchronizedStmt() argument
4134 return EmitTryOrSynchronizedStmt(CGF, S); in EmitSynchronizedStmt()
4150 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
4154 CGF.createBasicBlock("finally.call_exit"); in Emit()
4156 CGF.createBasicBlock("finally.no_call_exit"); in Emit()
4157 CGF.Builder.CreateCondBr(CGF.Builder.CreateLoad(CallTryExitVar), in Emit()
4160 CGF.EmitBlock(FinallyCallExit); in Emit()
4161 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionTryExitFn(), in Emit()
4162 ExceptionData.emitRawPointer(CGF)); in Emit()
4164 CGF.EmitBlock(FinallyNoCallExit); in Emit()
4176 CGF.Builder.CreateLoad(CGF.getNormalCleanupDestSlot()); in Emit()
4178 CGF.EmitStmt(FinallyStmt->getFinallyBody()); in Emit()
4180 if (CGF.HaveInsertPoint()) { in Emit()
4181 CGF.Builder.CreateStore(CurCleanupDest, in Emit()
4182 CGF.getNormalCleanupDestSlot()); in Emit()
4185 CGF.EnsureInsertPoint(); in Emit()
4191 llvm::Value *SyncArg = CGF.Builder.CreateLoad(SyncArgSlot); in Emit()
4192 CGF.EmitNounwindRuntimeCall(ObjCTypes.getSyncExitFn(), SyncArg); in Emit()
4198 CodeGenFunction &CGF; member in __anonb5e682970811::FragileHazards
4211 FragileHazards(CodeGenFunction &CGF);
4223 FragileHazards::FragileHazards(CodeGenFunction &CGF) : CGF(CGF) { in FragileHazards() argument
4230 for (llvm::BasicBlock &BB : *CGF.CurFn) in FragileHazards()
4272 llvm::CallInst *Call = CGF.EmitNounwindRuntimeCall(WriteHazard, Locals); in emitWriteHazard()
4277 CGF.getLLVMContext(), llvm::Attribute::ElementType, in emitWriteHazard()
4285 call->setCallingConv(CGF.getRuntimeCC()); in emitReadHazard()
4300 CGBuilderTy Builder(CGF, CGF.getLLVMContext()); in emitHazardsInNewBlocks()
4303 for (llvm::BasicBlock &BB : *CGF.CurFn) { in emitHazardsInNewBlocks()
4344 addIfPresent(AllocasToIgnore, CGF.ReturnValue); in collectLocals()
4345 addIfPresent(AllocasToIgnore, CGF.NormalCleanupDest); in collectLocals()
4349 llvm::BasicBlock &Entry = CGF.CurFn->getEntryBlock(); in collectLocals()
4359 return llvm::FunctionType::get(CGF.VoidTy, tys, false); in GetAsmFnType()
4470 void CGObjCMac::EmitTryOrSynchronizedStmt(CodeGen::CodeGenFunction &CGF, in EmitTryOrSynchronizedStmt() argument
4477 CGF.getJumpDestInCurrentScope("finally.end"); in EmitTryOrSynchronizedStmt()
4482 CGF.getJumpDestInCurrentScope("finally.rethrow"); in EmitTryOrSynchronizedStmt()
4492 CGF.EmitScalarExpr(cast<ObjCAtSynchronizedStmt>(S).getSynchExpr()); in EmitTryOrSynchronizedStmt()
4493 SyncArg = CGF.Builder.CreateBitCast(SyncArg, ObjCTypes.ObjectPtrTy); in EmitTryOrSynchronizedStmt()
4494 CGF.EmitNounwindRuntimeCall(ObjCTypes.getSyncEnterFn(), SyncArg); in EmitTryOrSynchronizedStmt()
4496 SyncArgSlot = CGF.CreateTempAlloca(SyncArg->getType(), in EmitTryOrSynchronizedStmt()
4497 CGF.getPointerAlign(), "sync.arg"); in EmitTryOrSynchronizedStmt()
4498 CGF.Builder.CreateStore(SyncArg, SyncArgSlot); in EmitTryOrSynchronizedStmt()
4503 Address ExceptionData = CGF.CreateTempAlloca( in EmitTryOrSynchronizedStmt()
4504 ObjCTypes.ExceptionDataTy, CGF.getPointerAlign(), "exceptiondata.ptr"); in EmitTryOrSynchronizedStmt()
4510 FragileHazards Hazards(CGF); in EmitTryOrSynchronizedStmt()
4520 Address CallTryExitVar = CGF.CreateTempAlloca( in EmitTryOrSynchronizedStmt()
4521 CGF.Builder.getInt1Ty(), CharUnits::One(), "_call_try_exit"); in EmitTryOrSynchronizedStmt()
4528 CGF.EHStack.pushCleanup<PerformFragileFinally>(NormalAndEHCleanup, &S, in EmitTryOrSynchronizedStmt()
4535 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionTryEnterFn(), in EmitTryOrSynchronizedStmt()
4536 ExceptionData.emitRawPointer(CGF)); in EmitTryOrSynchronizedStmt()
4539 llvm::Constant *Zero = llvm::ConstantInt::get(CGF.Builder.getInt32Ty(), 0); in EmitTryOrSynchronizedStmt()
4541 llvm::Value *SetJmpBuffer = CGF.Builder.CreateGEP( in EmitTryOrSynchronizedStmt()
4542 ObjCTypes.ExceptionDataTy, ExceptionData.emitRawPointer(CGF), GEPIndexes, in EmitTryOrSynchronizedStmt()
4544 llvm::CallInst *SetJmpResult = CGF.EmitNounwindRuntimeCall( in EmitTryOrSynchronizedStmt()
4550 llvm::BasicBlock *TryBlock = CGF.createBasicBlock("try"); in EmitTryOrSynchronizedStmt()
4551 llvm::BasicBlock *TryHandler = CGF.createBasicBlock("try.handler"); in EmitTryOrSynchronizedStmt()
4553 CGF.Builder.CreateIsNotNull(SetJmpResult, "did_catch_exception"); in EmitTryOrSynchronizedStmt()
4554 CGF.Builder.CreateCondBr(DidCatch, TryHandler, TryBlock); in EmitTryOrSynchronizedStmt()
4557 CGF.EmitBlock(TryBlock); in EmitTryOrSynchronizedStmt()
4558 CGF.Builder.CreateStore(CGF.Builder.getTrue(), CallTryExitVar); in EmitTryOrSynchronizedStmt()
4559 CGF.EmitStmt(isTry ? cast<ObjCAtTryStmt>(S).getTryBody() in EmitTryOrSynchronizedStmt()
4562 CGBuilderTy::InsertPoint TryFallthroughIP = CGF.Builder.saveAndClearIP(); in EmitTryOrSynchronizedStmt()
4565 CGF.EmitBlock(TryHandler); in EmitTryOrSynchronizedStmt()
4574 CGF.Builder.CreateStore(CGF.Builder.getFalse(), CallTryExitVar); in EmitTryOrSynchronizedStmt()
4575 CGF.EmitBranchThroughCleanup(FinallyRethrow); in EmitTryOrSynchronizedStmt()
4581 llvm::CallInst *Caught = CGF.EmitNounwindRuntimeCall( in EmitTryOrSynchronizedStmt()
4582 ObjCTypes.getExceptionExtractFn(), ExceptionData.emitRawPointer(CGF), in EmitTryOrSynchronizedStmt()
4587 CGF.ObjCEHValueStack.push_back(Caught); in EmitTryOrSynchronizedStmt()
4598 PropagatingExnVar = CGF.CreateTempAlloca( in EmitTryOrSynchronizedStmt()
4599 Caught->getType(), CGF.getPointerAlign(), "propagating_exception"); in EmitTryOrSynchronizedStmt()
4600 CGF.Builder.CreateStore(Caught, PropagatingExnVar); in EmitTryOrSynchronizedStmt()
4604 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionTryEnterFn(), in EmitTryOrSynchronizedStmt()
4605 ExceptionData.emitRawPointer(CGF)); in EmitTryOrSynchronizedStmt()
4607 llvm::CallInst *SetJmpResult = CGF.EmitNounwindRuntimeCall( in EmitTryOrSynchronizedStmt()
4612 CGF.Builder.CreateIsNotNull(SetJmpResult, "did_catch_exception"); in EmitTryOrSynchronizedStmt()
4614 CatchBlock = CGF.createBasicBlock("catch"); in EmitTryOrSynchronizedStmt()
4615 CatchHandler = CGF.createBasicBlock("catch_for_catch"); in EmitTryOrSynchronizedStmt()
4616 CGF.Builder.CreateCondBr(Threw, CatchHandler, CatchBlock); in EmitTryOrSynchronizedStmt()
4618 CGF.EmitBlock(CatchBlock); in EmitTryOrSynchronizedStmt()
4621 CGF.Builder.CreateStore(CGF.Builder.getInt1(HasFinally), CallTryExitVar); in EmitTryOrSynchronizedStmt()
4647 CodeGenFunction::RunCleanupsScope CatchVarCleanups(CGF); in EmitTryOrSynchronizedStmt()
4650 CGF.EmitAutoVarDecl(*CatchParam); in EmitTryOrSynchronizedStmt()
4651 assert(CGF.HaveInsertPoint() && "DeclStmt destroyed insert point?"); in EmitTryOrSynchronizedStmt()
4654 EmitInitOfCatchParam(CGF, Caught, CatchParam); in EmitTryOrSynchronizedStmt()
4657 CGF.EmitStmt(CatchStmt->getCatchBody()); in EmitTryOrSynchronizedStmt()
4662 CGF.EmitBranchThroughCleanup(FinallyEnd); in EmitTryOrSynchronizedStmt()
4674 llvm::Value *Class = EmitClassRef(CGF, IDecl); in EmitTryOrSynchronizedStmt()
4677 llvm::CallInst *Match = CGF.EmitNounwindRuntimeCall( in EmitTryOrSynchronizedStmt()
4680 llvm::BasicBlock *MatchedBlock = CGF.createBasicBlock("match"); in EmitTryOrSynchronizedStmt()
4681 llvm::BasicBlock *NextCatchBlock = CGF.createBasicBlock("catch.next"); in EmitTryOrSynchronizedStmt()
4683 CGF.Builder.CreateCondBr(CGF.Builder.CreateIsNotNull(Match, "matched"), in EmitTryOrSynchronizedStmt()
4687 CGF.EmitBlock(MatchedBlock); in EmitTryOrSynchronizedStmt()
4691 CodeGenFunction::RunCleanupsScope CatchVarCleanups(CGF); in EmitTryOrSynchronizedStmt()
4693 CGF.EmitAutoVarDecl(*CatchParam); in EmitTryOrSynchronizedStmt()
4694 assert(CGF.HaveInsertPoint() && "DeclStmt destroyed insert point?"); in EmitTryOrSynchronizedStmt()
4697 llvm::Value *Tmp = CGF.Builder.CreateBitCast( in EmitTryOrSynchronizedStmt()
4698 Caught, CGF.ConvertType(CatchParam->getType())); in EmitTryOrSynchronizedStmt()
4699 EmitInitOfCatchParam(CGF, Tmp, CatchParam); in EmitTryOrSynchronizedStmt()
4701 CGF.EmitStmt(CatchStmt->getCatchBody()); in EmitTryOrSynchronizedStmt()
4706 CGF.EmitBranchThroughCleanup(FinallyEnd); in EmitTryOrSynchronizedStmt()
4708 CGF.EmitBlock(NextCatchBlock); in EmitTryOrSynchronizedStmt()
4711 CGF.ObjCEHValueStack.pop_back(); in EmitTryOrSynchronizedStmt()
4719 CGF.EmitBranchThroughCleanup(FinallyRethrow); in EmitTryOrSynchronizedStmt()
4723 CGF.EmitBlock(CatchHandler); in EmitTryOrSynchronizedStmt()
4733 llvm::CallInst *NewCaught = CGF.EmitNounwindRuntimeCall( in EmitTryOrSynchronizedStmt()
4734 ObjCTypes.getExceptionExtractFn(), ExceptionData.emitRawPointer(CGF), in EmitTryOrSynchronizedStmt()
4736 CGF.Builder.CreateStore(NewCaught, PropagatingExnVar); in EmitTryOrSynchronizedStmt()
4739 CGF.Builder.CreateStore(CGF.Builder.getFalse(), CallTryExitVar); in EmitTryOrSynchronizedStmt()
4740 CGF.EmitBranchThroughCleanup(FinallyRethrow); in EmitTryOrSynchronizedStmt()
4748 CGF.Builder.restoreIP(TryFallthroughIP); in EmitTryOrSynchronizedStmt()
4749 if (CGF.HaveInsertPoint()) in EmitTryOrSynchronizedStmt()
4750 CGF.Builder.CreateStore(CGF.Builder.getTrue(), CallTryExitVar); in EmitTryOrSynchronizedStmt()
4751 CGF.PopCleanupBlock(); in EmitTryOrSynchronizedStmt()
4752 CGF.EmitBlock(FinallyEnd.getBlock(), true); in EmitTryOrSynchronizedStmt()
4755 CGBuilderTy::InsertPoint SavedIP = CGF.Builder.saveAndClearIP(); in EmitTryOrSynchronizedStmt()
4756 CGF.EmitBlock(FinallyRethrow.getBlock(), true); in EmitTryOrSynchronizedStmt()
4757 if (CGF.HaveInsertPoint()) { in EmitTryOrSynchronizedStmt()
4761 PropagatingExn = CGF.Builder.CreateLoad(PropagatingExnVar); in EmitTryOrSynchronizedStmt()
4765 llvm::CallInst *Caught = CGF.EmitNounwindRuntimeCall( in EmitTryOrSynchronizedStmt()
4766 ObjCTypes.getExceptionExtractFn(), ExceptionData.emitRawPointer(CGF)); in EmitTryOrSynchronizedStmt()
4770 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionThrowFn(), in EmitTryOrSynchronizedStmt()
4772 CGF.Builder.CreateUnreachable(); in EmitTryOrSynchronizedStmt()
4775 CGF.Builder.restoreIP(SavedIP); in EmitTryOrSynchronizedStmt()
4778 void CGObjCMac::EmitThrowStmt(CodeGen::CodeGenFunction &CGF, in EmitThrowStmt() argument
4784 llvm::Value *Exception = CGF.EmitObjCThrowOperand(ThrowExpr); in EmitThrowStmt()
4786 CGF.Builder.CreateBitCast(Exception, ObjCTypes.ObjectPtrTy); in EmitThrowStmt()
4788 assert((!CGF.ObjCEHValueStack.empty() && CGF.ObjCEHValueStack.back()) && in EmitThrowStmt()
4790 ExceptionAsObject = CGF.ObjCEHValueStack.back(); in EmitThrowStmt()
4793 CGF.EmitRuntimeCall(ObjCTypes.getExceptionThrowFn(), ExceptionAsObject) in EmitThrowStmt()
4795 CGF.Builder.CreateUnreachable(); in EmitThrowStmt()
4799 CGF.Builder.ClearInsertionPoint(); in EmitThrowStmt()
4805 llvm::Value *CGObjCMac::EmitObjCWeakRead(CodeGen::CodeGenFunction &CGF, in EmitObjCWeakRead() argument
4808 llvm::Value *AddrWeakObjVal = CGF.Builder.CreateBitCast( in EmitObjCWeakRead()
4809 AddrWeakObj.emitRawPointer(CGF), ObjCTypes.PtrObjectPtrTy); in EmitObjCWeakRead()
4810 llvm::Value *read_weak = CGF.EmitNounwindRuntimeCall( in EmitObjCWeakRead()
4812 read_weak = CGF.Builder.CreateBitCast(read_weak, DestTy); in EmitObjCWeakRead()
4819 void CGObjCMac::EmitObjCWeakAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCWeakAssign() argument
4825 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, CGM.Int32Ty) in EmitObjCWeakAssign()
4826 : CGF.Builder.CreateBitCast(src, CGM.Int64Ty); in EmitObjCWeakAssign()
4827 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCWeakAssign()
4829 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCWeakAssign()
4830 llvm::Value *dstVal = CGF.Builder.CreateBitCast(dst.emitRawPointer(CGF), in EmitObjCWeakAssign()
4833 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignWeakFn(), args, in EmitObjCWeakAssign()
4840 void CGObjCMac::EmitObjCGlobalAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCGlobalAssign() argument
4847 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, CGM.Int32Ty) in EmitObjCGlobalAssign()
4848 : CGF.Builder.CreateBitCast(src, CGM.Int64Ty); in EmitObjCGlobalAssign()
4849 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCGlobalAssign()
4851 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCGlobalAssign()
4852 llvm::Value *dstVal = CGF.Builder.CreateBitCast(dst.emitRawPointer(CGF), in EmitObjCGlobalAssign()
4856 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignGlobalFn(), args, in EmitObjCGlobalAssign()
4859 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignThreadLocalFn(), args, in EmitObjCGlobalAssign()
4866 void CGObjCMac::EmitObjCIvarAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCIvarAssign() argument
4874 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, CGM.Int32Ty) in EmitObjCIvarAssign()
4875 : CGF.Builder.CreateBitCast(src, CGM.Int64Ty); in EmitObjCIvarAssign()
4876 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCIvarAssign()
4878 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCIvarAssign()
4879 llvm::Value *dstVal = CGF.Builder.CreateBitCast(dst.emitRawPointer(CGF), in EmitObjCIvarAssign()
4882 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignIvarFn(), args); in EmitObjCIvarAssign()
4888 void CGObjCMac::EmitObjCStrongCastAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCStrongCastAssign() argument
4894 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, CGM.Int32Ty) in EmitObjCStrongCastAssign()
4895 : CGF.Builder.CreateBitCast(src, CGM.Int64Ty); in EmitObjCStrongCastAssign()
4896 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCStrongCastAssign()
4898 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCStrongCastAssign()
4899 llvm::Value *dstVal = CGF.Builder.CreateBitCast(dst.emitRawPointer(CGF), in EmitObjCStrongCastAssign()
4902 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignStrongCastFn(), args, in EmitObjCStrongCastAssign()
4906 void CGObjCMac::EmitGCMemmoveCollectable(CodeGen::CodeGenFunction &CGF, in EmitGCMemmoveCollectable() argument
4909 llvm::Value *args[] = {DestPtr.emitRawPointer(CGF), in EmitGCMemmoveCollectable()
4910 SrcPtr.emitRawPointer(CGF), size}; in EmitGCMemmoveCollectable()
4911 CGF.EmitNounwindRuntimeCall(ObjCTypes.GcMemmoveCollectableFn(), args); in EmitGCMemmoveCollectable()
4916 LValue CGObjCMac::EmitObjCValueForIvar(CodeGen::CodeGenFunction &CGF, in EmitObjCValueForIvar() argument
4923 return EmitValueForIvarAtOffset(CGF, ID, BaseValue, Ivar, CVRQualifiers, in EmitObjCValueForIvar()
4924 EmitIvarOffset(CGF, ID, Ivar)); in EmitObjCValueForIvar()
4927 llvm::Value *CGObjCMac::EmitIvarOffset(CodeGen::CodeGenFunction &CGF, in EmitIvarOffset() argument
5115 llvm::Value *CGObjCMac::EmitClassRefFromId(CodeGenFunction &CGF, in EmitClassRefFromId() argument
5128 return CGF.Builder.CreateAlignedLoad(Entry->getValueType(), Entry, in EmitClassRefFromId()
5129 CGF.getPointerAlign()); in EmitClassRefFromId()
5132 llvm::Value *CGObjCMac::EmitClassRef(CodeGenFunction &CGF, in EmitClassRef() argument
5137 return EmitClassRefViaRuntime(CGF, ID, ObjCTypes); in EmitClassRef()
5141 return EmitClassRefFromId(CGF, RuntimeName); in EmitClassRef()
5144 llvm::Value *CGObjCMac::EmitNSAutoreleasePoolClassRef(CodeGenFunction &CGF) { in EmitNSAutoreleasePoolClassRef() argument
5146 return EmitClassRefFromId(CGF, II); in EmitNSAutoreleasePoolClassRef()
5149 llvm::Value *CGObjCMac::EmitSelector(CodeGenFunction &CGF, Selector Sel) { in EmitSelector() argument
5150 return CGF.Builder.CreateLoad(EmitSelectorAddr(Sel)); in EmitSelector()
6498 CGObjCNonFragileABIMac::GenerateProtocolRef(CodeGenFunction &CGF, in GenerateProtocolRef() argument
6510 CharUnits Align = CGF.getPointerAlign(); in GenerateProtocolRef()
6514 return CGF.Builder.CreateAlignedLoad(PTGV->getValueType(), PTGV, Align); in GenerateProtocolRef()
6525 return CGF.Builder.CreateAlignedLoad(PTGV->getValueType(), PTGV, Align); in GenerateProtocolRef()
7085 CodeGen::CodeGenFunction &CGF, QualType ObjectTy, llvm::Value *BaseValue, in EmitObjCValueForIvar() argument
7088 llvm::Value *Offset = EmitIvarOffset(CGF, ID, Ivar); in EmitObjCValueForIvar()
7089 return EmitValueForIvarAtOffset(CGF, ID, BaseValue, Ivar, CVRQualifiers, in EmitObjCValueForIvar()
7094 CGObjCNonFragileABIMac::EmitIvarOffset(CodeGen::CodeGenFunction &CGF, in EmitIvarOffset() argument
7104 IvarOffsetValue = CGF.Builder.CreateAlignedLoad(GV->getValueType(), GV, in EmitIvarOffset()
7105 CGF.getSizeAlign(), "ivar"); in EmitIvarOffset()
7106 if (IsIvarOffsetKnownIdempotent(CGF, Ivar)) in EmitIvarOffset()
7116 IvarOffsetValue = CGF.Builder.CreateIntCast( in EmitIvarOffset()
7145 CodeGenFunction &CGF, ReturnValueSlot returnSlot, QualType resultType, in EmitVTableMessageSend() argument
7153 arg0 = CGF.Builder.CreateBitCast(arg0, ObjCTypes.ObjectPtrTy); in EmitVTableMessageSend()
7180 nullReturn.init(CGF, arg0); in EmitVTableMessageSend()
7223 nullReturn.init(CGF, arg0); in EmitVTableMessageSend()
7230 Address(CGF.Builder.CreateBitCast(messageRef, ObjCTypes.MessageRefPtrTy), in EmitVTableMessageSend()
7231 ObjCTypes.MessageRefTy, CGF.getPointerAlign()); in EmitVTableMessageSend()
7234 args[1].setRValue(RValue::get(mref, CGF)); in EmitVTableMessageSend()
7237 Address calleeAddr = CGF.Builder.CreateStructGEP(mref, 0); in EmitVTableMessageSend()
7238 llvm::Value *calleePtr = CGF.Builder.CreateLoad(calleeAddr, "msgSend_fn"); in EmitVTableMessageSend()
7240 calleePtr = CGF.Builder.CreateBitCast(calleePtr, MSI.MessengerType); in EmitVTableMessageSend()
7243 RValue result = CGF.EmitCall(MSI.CallInfo, callee, returnSlot, args); in EmitVTableMessageSend()
7244 return nullReturn.complete(CGF, returnSlot, result, resultType, formalArgs, in EmitVTableMessageSend()
7250 CodeGen::CodeGenFunction &CGF, ReturnValueSlot Return, QualType ResultType, in GenerateMessageSend() argument
7254 ? EmitVTableMessageSend(CGF, Return, ResultType, Sel, Receiver, in GenerateMessageSend()
7255 CGF.getContext().getObjCIdType(), false, in GenerateMessageSend()
7257 : EmitMessageSend(CGF, Return, ResultType, Sel, Receiver, in GenerateMessageSend()
7258 CGF.getContext().getObjCIdType(), false, in GenerateMessageSend()
7320 CGObjCNonFragileABIMac::EmitLoadOfClassRef(CodeGenFunction &CGF, in EmitLoadOfClassRef() argument
7326 return CGF.EmitRuntimeCall(ObjCTypes.getLoadClassrefFn(), Entry, in EmitLoadOfClassRef()
7330 CharUnits Align = CGF.getPointerAlign(); in EmitLoadOfClassRef()
7331 return CGF.Builder.CreateAlignedLoad(Entry->getValueType(), Entry, Align); in EmitLoadOfClassRef()
7335 CodeGenFunction &CGF, IdentifierInfo *II, const ObjCInterfaceDecl *ID) { in EmitClassRefFromId() argument
7355 Entry->setAlignment(CGF.getPointerAlign().getAsAlign()); in EmitClassRefFromId()
7362 return EmitLoadOfClassRef(CGF, ID, Entry); in EmitClassRefFromId()
7365 llvm::Value *CGObjCNonFragileABIMac::EmitClassRef(CodeGenFunction &CGF, in EmitClassRef() argument
7370 return EmitClassRefViaRuntime(CGF, ID, ObjCTypes); in EmitClassRef()
7372 return EmitClassRefFromId(CGF, ID->getIdentifier(), ID); in EmitClassRef()
7376 CGObjCNonFragileABIMac::EmitNSAutoreleasePoolClassRef(CodeGenFunction &CGF) { in EmitNSAutoreleasePoolClassRef() argument
7378 return EmitClassRefFromId(CGF, II, nullptr); in EmitNSAutoreleasePoolClassRef()
7382 CGObjCNonFragileABIMac::EmitSuperClassRef(CodeGenFunction &CGF, in EmitSuperClassRef() argument
7393 Entry->setAlignment(CGF.getPointerAlign().getAsAlign()); in EmitSuperClassRef()
7398 return EmitLoadOfClassRef(CGF, ID, Entry); in EmitSuperClassRef()
7405 CodeGenFunction &CGF, const ObjCInterfaceDecl *ID, bool Weak) { in EmitMetaClassRef() argument
7406 CharUnits Align = CGF.getPointerAlign(); in EmitMetaClassRef()
7420 return CGF.Builder.CreateAlignedLoad(ObjCTypes.ClassnfABIPtrTy, Entry, Align); in EmitMetaClassRef()
7425 llvm::Value *CGObjCNonFragileABIMac::GetClass(CodeGenFunction &CGF, in GetClass() argument
7434 return EmitClassRef(CGF, ID); in GetClass()
7441 CodeGen::CodeGenFunction &CGF, ReturnValueSlot Return, QualType ResultType, in GenerateMessageSendSuper() argument
7448 RawAddress ObjCSuper = CGF.CreateTempAlloca( in GenerateMessageSendSuper()
7449 ObjCTypes.SuperTy, CGF.getPointerAlign(), "objc_super"); in GenerateMessageSendSuper()
7452 CGF.Builder.CreateBitCast(Receiver, ObjCTypes.ObjectPtrTy); in GenerateMessageSendSuper()
7453 CGF.Builder.CreateStore(ReceiverAsObject, in GenerateMessageSendSuper()
7454 CGF.Builder.CreateStructGEP(ObjCSuper, 0)); in GenerateMessageSendSuper()
7459 Target = EmitMetaClassRef(CGF, Class, Class->isWeakImported()); in GenerateMessageSendSuper()
7461 Target = EmitSuperClassRef(CGF, Class); in GenerateMessageSendSuper()
7466 CGM.getTypes().ConvertType(CGF.getContext().getObjCClassType()); in GenerateMessageSendSuper()
7467 Target = CGF.Builder.CreateBitCast(Target, ClassTy); in GenerateMessageSendSuper()
7468 CGF.Builder.CreateStore(Target, CGF.Builder.CreateStructGEP(ObjCSuper, 1)); in GenerateMessageSendSuper()
7472 CGF, Return, ResultType, Sel, ObjCSuper.getPointer(), in GenerateMessageSendSuper()
7474 : EmitMessageSend(CGF, Return, ResultType, Sel, in GenerateMessageSendSuper()
7479 llvm::Value *CGObjCNonFragileABIMac::EmitSelector(CodeGenFunction &CGF, in EmitSelector() argument
7483 llvm::LoadInst *LI = CGF.Builder.CreateLoad(Addr); in EmitSelector()
7511 void CGObjCNonFragileABIMac::EmitObjCIvarAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCIvarAssign() argument
7518 src = (Size == 4 ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy) in EmitObjCIvarAssign()
7519 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongTy)); in EmitObjCIvarAssign()
7520 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCIvarAssign()
7522 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCIvarAssign()
7523 llvm::Value *dstVal = CGF.Builder.CreateBitCast(dst.emitRawPointer(CGF), in EmitObjCIvarAssign()
7526 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignIvarFn(), args); in EmitObjCIvarAssign()
7533 CodeGen::CodeGenFunction &CGF, llvm::Value *src, Address dst) { in EmitObjCStrongCastAssign() argument
7538 src = (Size == 4 ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy) in EmitObjCStrongCastAssign()
7539 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongTy)); in EmitObjCStrongCastAssign()
7540 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCStrongCastAssign()
7542 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCStrongCastAssign()
7543 llvm::Value *dstVal = CGF.Builder.CreateBitCast(dst.emitRawPointer(CGF), in EmitObjCStrongCastAssign()
7546 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignStrongCastFn(), args, in EmitObjCStrongCastAssign()
7551 CodeGen::CodeGenFunction &CGF, Address DestPtr, Address SrcPtr, in EmitGCMemmoveCollectable() argument
7553 llvm::Value *args[] = {DestPtr.emitRawPointer(CGF), in EmitGCMemmoveCollectable()
7554 SrcPtr.emitRawPointer(CGF), Size}; in EmitGCMemmoveCollectable()
7555 CGF.EmitNounwindRuntimeCall(ObjCTypes.GcMemmoveCollectableFn(), args); in EmitGCMemmoveCollectable()
7562 CGObjCNonFragileABIMac::EmitObjCWeakRead(CodeGen::CodeGenFunction &CGF, in EmitObjCWeakRead() argument
7565 llvm::Value *AddrWeakObjVal = CGF.Builder.CreateBitCast( in EmitObjCWeakRead()
7566 AddrWeakObj.emitRawPointer(CGF), ObjCTypes.PtrObjectPtrTy); in EmitObjCWeakRead()
7567 llvm::Value *read_weak = CGF.EmitNounwindRuntimeCall( in EmitObjCWeakRead()
7569 read_weak = CGF.Builder.CreateBitCast(read_weak, DestTy); in EmitObjCWeakRead()
7576 void CGObjCNonFragileABIMac::EmitObjCWeakAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCWeakAssign() argument
7582 src = (Size == 4 ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy) in EmitObjCWeakAssign()
7583 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongTy)); in EmitObjCWeakAssign()
7584 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCWeakAssign()
7586 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCWeakAssign()
7587 llvm::Value *dstVal = CGF.Builder.CreateBitCast(dst.emitRawPointer(CGF), in EmitObjCWeakAssign()
7590 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignWeakFn(), args, in EmitObjCWeakAssign()
7597 void CGObjCNonFragileABIMac::EmitObjCGlobalAssign(CodeGen::CodeGenFunction &CGF, in EmitObjCGlobalAssign() argument
7604 src = (Size == 4 ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy) in EmitObjCGlobalAssign()
7605 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongTy)); in EmitObjCGlobalAssign()
7606 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy); in EmitObjCGlobalAssign()
7608 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy); in EmitObjCGlobalAssign()
7609 llvm::Value *dstVal = CGF.Builder.CreateBitCast(dst.emitRawPointer(CGF), in EmitObjCGlobalAssign()
7613 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignGlobalFn(), args, in EmitObjCGlobalAssign()
7616 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignThreadLocalFn(), args, in EmitObjCGlobalAssign()
7621 CodeGen::CodeGenFunction &CGF, const ObjCAtSynchronizedStmt &S) { in EmitSynchronizedStmt() argument
7622 EmitAtSynchronizedStmt(CGF, S, ObjCTypes.getSyncEnterFn(), in EmitSynchronizedStmt()
7650 void CGObjCNonFragileABIMac::EmitTryStmt(CodeGen::CodeGenFunction &CGF, in EmitTryStmt() argument
7652 EmitTryCatchStmt(CGF, S, ObjCTypes.getObjCBeginCatchFn(), in EmitTryStmt()
7658 void CGObjCNonFragileABIMac::EmitThrowStmt(CodeGen::CodeGenFunction &CGF, in EmitThrowStmt() argument
7662 llvm::Value *Exception = CGF.EmitObjCThrowOperand(ThrowExpr); in EmitThrowStmt()
7663 Exception = CGF.Builder.CreateBitCast(Exception, ObjCTypes.ObjectPtrTy); in EmitThrowStmt()
7665 CGF.EmitRuntimeCallOrInvoke(ObjCTypes.getExceptionThrowFn(), Exception); in EmitThrowStmt()
7669 CGF.EmitRuntimeCallOrInvoke(ObjCTypes.getExceptionRethrowFn()); in EmitThrowStmt()
7673 CGF.Builder.CreateUnreachable(); in EmitThrowStmt()
7675 CGF.Builder.ClearInsertionPoint(); in EmitThrowStmt()