Lines Matching refs:CGM

69     return CGM.CreateRuntimeFunction(  in getMessageSendFn()
71 llvm::AttributeList::get(CGM.getLLVMContext(), in getMessageSendFn()
83 return CGM.CreateRuntimeFunction(llvm::FunctionType::get(CGM.VoidTy, in getMessageSendStretFn()
95 return CGM.CreateRuntimeFunction(llvm::FunctionType::get(CGM.DoubleTy, in getMessageSendFpretFn()
111 return CGM.CreateRuntimeFunction(llvm::FunctionType::get(resultType, in getMessageSendFp2retFn()
123 return CGM.CreateRuntimeFunction(llvm::FunctionType::get(ObjectPtrTy, in getMessageSendSuperFn()
134 return CGM.CreateRuntimeFunction(llvm::FunctionType::get(ObjectPtrTy, in getMessageSendSuperFn2()
145 return CGM.CreateRuntimeFunction( in getMessageSendSuperStretFn()
146 llvm::FunctionType::get(CGM.VoidTy, params, true), in getMessageSendSuperStretFn()
156 return CGM.CreateRuntimeFunction( in getMessageSendSuperStretFn2()
157 llvm::FunctionType::get(CGM.VoidTy, params, true), in getMessageSendSuperStretFn2()
172 CodeGen::CodeGenModule &CGM; member in __anonb5e682970111::ObjCCommonTypesHelper
199 CodeGen::CodeGenTypes &Types = CGM.getTypes(); in getExternalProtocolPtrTy()
200 ASTContext &Ctx = CGM.getContext(); in getExternalProtocolPtrTy()
237 CodeGen::CodeGenTypes &Types = CGM.getTypes(); in getGetPropertyFn()
238 ASTContext &Ctx = CGM.getContext(); in getGetPropertyFn()
248 return CGM.CreateRuntimeFunction(FTy, "objc_getProperty"); in getGetPropertyFn()
252 CodeGen::CodeGenTypes &Types = CGM.getTypes(); in getSetPropertyFn()
253 ASTContext &Ctx = CGM.getContext(); in getSetPropertyFn()
267 return CGM.CreateRuntimeFunction(FTy, "objc_setProperty"); in getSetPropertyFn()
271 CodeGen::CodeGenTypes &Types = CGM.getTypes(); in getOptimizedSetPropertyFn()
272 ASTContext &Ctx = CGM.getContext(); in getOptimizedSetPropertyFn()
302 return CGM.CreateRuntimeFunction(FTy, name); in getOptimizedSetPropertyFn()
306 CodeGen::CodeGenTypes &Types = CGM.getTypes(); in getCopyStructFn()
307 ASTContext &Ctx = CGM.getContext(); in getCopyStructFn()
318 return CGM.CreateRuntimeFunction(FTy, "objc_copyStruct"); in getCopyStructFn()
326 CodeGen::CodeGenTypes &Types = CGM.getTypes(); in getCppAtomicObjectFunction()
327 ASTContext &Ctx = CGM.getContext(); in getCppAtomicObjectFunction()
336 return CGM.CreateRuntimeFunction(FTy, "objc_copyCppObjectAtomic"); in getCppAtomicObjectFunction()
340 CodeGen::CodeGenTypes &Types = CGM.getTypes(); in getEnumerationMutationFn()
341 ASTContext &Ctx = CGM.getContext(); in getEnumerationMutationFn()
348 return CGM.CreateRuntimeFunction(FTy, "objc_enumerationMutation"); in getEnumerationMutationFn()
352 CodeGen::CodeGenTypes &Types = CGM.getTypes(); in getLookUpClassFn()
353 ASTContext &Ctx = CGM.getContext(); in getLookUpClassFn()
362 return CGM.CreateRuntimeFunction(FTy, "objc_lookUpClass"); in getLookUpClassFn()
371 return CGM.CreateRuntimeFunction(FTy, "objc_read_weak"); in getGcReadWeakFn()
380 return CGM.CreateRuntimeFunction(FTy, "objc_assign_weak"); in getGcAssignWeakFn()
389 return CGM.CreateRuntimeFunction(FTy, "objc_assign_global"); in getGcAssignGlobalFn()
398 return CGM.CreateRuntimeFunction(FTy, "objc_assign_threadlocal"); in getGcAssignThreadLocalFn()
405 CGM.PtrDiffTy }; in getGcAssignIvarFn()
408 return CGM.CreateRuntimeFunction(FTy, "objc_assign_ivar"); in getGcAssignIvarFn()
416 return CGM.CreateRuntimeFunction(FTy, "objc_memmove_collectable"); in GcMemmoveCollectableFn()
425 return CGM.CreateRuntimeFunction(FTy, "objc_assign_strongCast"); in getGcAssignStrongCastFn()
433 llvm::FunctionType::get(CGM.VoidTy, args, false); in getExceptionThrowFn()
434 return CGM.CreateRuntimeFunction(FTy, "objc_exception_throw"); in getExceptionThrowFn()
440 llvm::FunctionType *FTy = llvm::FunctionType::get(CGM.VoidTy, false); in getExceptionRethrowFn()
441 return CGM.CreateRuntimeFunction(FTy, "objc_exception_rethrow"); in getExceptionRethrowFn()
449 llvm::FunctionType::get(CGM.IntTy, args, false); in getSyncEnterFn()
450 return CGM.CreateRuntimeFunction(FTy, "objc_sync_enter"); in getSyncEnterFn()
458 llvm::FunctionType::get(CGM.IntTy, args, false); in getSyncExitFn()
459 return CGM.CreateRuntimeFunction(FTy, "objc_sync_exit"); in getSyncExitFn()
558 return CGM.CreateRuntimeFunction( in getExceptionTryEnterFn()
559 llvm::FunctionType::get(CGM.VoidTy, params, false), in getExceptionTryEnterFn()
566 return CGM.CreateRuntimeFunction( in getExceptionTryExitFn()
567 llvm::FunctionType::get(CGM.VoidTy, params, false), in getExceptionTryExitFn()
574 return CGM.CreateRuntimeFunction(llvm::FunctionType::get(ObjectPtrTy, in getExceptionExtractFn()
582 return CGM.CreateRuntimeFunction( in getExceptionMatchFn()
583 llvm::FunctionType::get(CGM.Int32Ty, params, false), in getExceptionMatchFn()
590 llvm::Type *params[] = { CGM.Int32Ty->getPointerTo() }; in getSetJmpFn()
591 return CGM.CreateRuntimeFunction( in getSetJmpFn()
592 llvm::FunctionType::get(CGM.Int32Ty, params, false), "_setjmp", in getSetJmpFn()
593 llvm::AttributeList::get(CGM.getLLVMContext(), in getSetJmpFn()
677 return CGM.CreateRuntimeFunction(llvm::FunctionType::get(ObjectPtrTy, in getMessageSendFixupFn()
685 return CGM.CreateRuntimeFunction(llvm::FunctionType::get(ObjectPtrTy, in getMessageSendFpretFixupFn()
693 return CGM.CreateRuntimeFunction(llvm::FunctionType::get(ObjectPtrTy, in getMessageSendStretFixupFn()
702 return CGM.CreateRuntimeFunction(llvm::FunctionType::get(ObjectPtrTy, in getMessageSendSuper2FixupFn()
711 return CGM.CreateRuntimeFunction(llvm::FunctionType::get(ObjectPtrTy, in getMessageSendSuper2StretFixupFn()
717 return CGM.CreateRuntimeFunction(llvm::FunctionType::get(CGM.VoidTy, false), in getObjCEndCatchFn()
723 return CGM.CreateRuntimeFunction(llvm::FunctionType::get(Int8PtrTy, in getObjCBeginCatchFn()
740 llvm::LLVMContext &C = CGM.getLLVMContext(); in getLoadClassrefFn()
746 llvm::FunctionCallee F = CGM.CreateRuntimeFunction( in getLoadClassrefFn()
749 llvm::AttributeList::get(CGM.getLLVMContext(), in getLoadClassrefFn()
751 if (!CGM.getTriple().isOSBinFormatCOFF()) in getLoadClassrefFn()
1117 llvm::Constant *BuildGCBlockLayout(CodeGen::CodeGenModule &CGM,
1119 llvm::Constant *BuildRCBlockLayout(CodeGen::CodeGenModule &CGM,
1121 std::string getRCBlockLayoutStr(CodeGen::CodeGenModule &CGM,
1124 llvm::Constant *BuildByrefLayout(CodeGen::CodeGenModule &CGM,
1128 void fillRunSkipBlockVars(CodeGenModule &CGM, const CGBlockInfo &blockInfo);
1558 const IdentifierInfo *II = &CGM.getContext().Idents.get(name); in GetNullarySelector()
1559 return CGM.getContext().Selectors.getSelector(0, &II); in GetNullarySelector()
1563 const IdentifierInfo *II = &CGM.getContext().Idents.get(name); in GetUnarySelector()
1564 return CGM.getContext().Selectors.getSelector(1, &II); in GetUnarySelector()
1788 CGF.EmitFromMemory(CGF.CGM.EmitNullConstant(resultType), resultType); in complete()
1859 getLinkageTypeForObjCMetadata(CodeGenModule &CGM, StringRef Section) { in getLinkageTypeForObjCMetadata() argument
1860 if (CGM.getTriple().isOSBinFormatMachO() && in getLinkageTypeForObjCMetadata()
1869 const llvm::Twine &Name, CodeGenModule &CGM) { in finishAndCreateGlobal() argument
1871 if (CGM.getTriple().isOSBinFormatMachO()) in finishAndCreateGlobal()
1874 Name, CGM.getPointerAlign(), /*constant*/ false, in finishAndCreateGlobal()
1875 getLinkageTypeForObjCMetadata(CGM, SectionName)); in finishAndCreateGlobal()
1910 return CGM.GetAddrOfRTTIDescriptor( in GetEHType()
1911 CGM.getContext().getObjCIdRedefinitionType(), /*ForEH=*/true); in GetEHType()
1915 return CGM.GetAddrOfRTTIDescriptor( in GetEHType()
1916 CGM.getContext().getObjCClassRedefinitionType(), /*ForEH=*/true); in GetEHType()
1919 return CGM.GetAddrOfRTTIDescriptor(T, /*ForEH=*/true); in GetEHType()
1945 return (!CGM.getLangOpts().NoConstantCFStrings in GenerateConstantString()
1946 ? CGM.GetAddrOfConstantCFString(SL) in GenerateConstantString()
1962 auto &StringClass = CGM.getLangOpts().ObjCConstantStringClass; in getNSConstantStringClassRef()
1967 llvm::Type *PTy = llvm::ArrayType::get(CGM.IntTy, 0); in getNSConstantStringClassRef()
1968 auto GV = CGM.CreateRuntimeVariable(PTy, str); in getNSConstantStringClassRef()
1977 auto &StringClass = CGM.getLangOpts().ObjCConstantStringClass; in getNSConstantStringClassRef()
2002 llvm::StructType::create({CGM.UnqualPtrTy, CGM.Int8PtrTy, CGM.IntTy}, in GenerateConstantNSString()
2006 ConstantInitBuilder Builder(CGM); in GenerateConstantNSString()
2017 bool isConstant = !CGM.getLangOpts().WritableStrings; in GenerateConstantNSString()
2019 auto *GV = new llvm::GlobalVariable(CGM.getModule(), C->getType(), isConstant, in GenerateConstantNSString()
2028 Fields.addInt(CGM.IntTy, StringLength); in GenerateConstantNSString()
2031 CharUnits Alignment = CGM.getPointerAlign(); in GenerateConstantNSString()
2039 GV->setSection(CGM.getLangOpts().ObjCRuntime.isNonFragile() in GenerateConstantNSString()
2108 CGM.getTypes().ConvertType(CGF.getContext().getObjCClassType()); in GenerateMessageSendSuper()
2142 CodeGenTypes &Types = CGM.getTypes(); in EmitMessageSend()
2158 assert(CGM.getContext().getCanonicalType(Method->getReturnType()) == in EmitMessageSend()
2159 CGM.getContext().getCanonicalType(ResultType) && in EmitMessageSend()
2175 } else if (CGM.ReturnSlotInterferesWithArgs(MSI.CallInfo)) { in EmitMessageSend()
2179 } else if (CGM.ReturnTypeUsesFPRet(ResultType)) { in EmitMessageSend()
2182 } else if (CGM.ReturnTypeUsesFP2Ret(ResultType)) { in EmitMessageSend()
2188 if (ReceiverCanBeNull && CGM.ReturnTypeUsesSRet(MSI.CallInfo)) in EmitMessageSend()
2285 CodeGenModule &CGM; member in __anonb5e682970511::IvarLayoutBuilder
2303 IvarLayoutBuilder(CodeGenModule &CGM, CharUnits instanceBegin, in IvarLayoutBuilder() argument
2305 : CGM(CGM), InstanceBegin(instanceBegin), InstanceEnd(instanceEnd), in IvarLayoutBuilder()
2339 llvm::Constant *CGObjCCommonMac::BuildGCBlockLayout(CodeGenModule &CGM, in BuildGCBlockLayout() argument
2342 llvm::Constant *nullPtr = llvm::Constant::getNullValue(CGM.Int8PtrTy); in BuildGCBlockLayout()
2343 if (CGM.getLangOpts().getGC() == LangOptions::NonGC) in BuildGCBlockLayout()
2346 IvarLayoutBuilder builder(CGM, CharUnits::Zero(), blockInfo.BlockSize, in BuildGCBlockLayout()
2356 if (CGM.getLangOpts().ObjCGCBitmapPrint && !buffer.empty()) { in BuildGCBlockLayout()
2406 Qualifiers::GC GCAttr = GetGCAttrTypeForType(CGM.getContext(), type); in visitBlock()
2409 assert(CGM.getContext().getTypeSize(type) == in visitBlock()
2410 CGM.getTarget().getPointerWidth(LangAS::Default)); in visitBlock()
2426 if (CGM.getLangOpts().ObjCAutoRefCount) in getBlockCaptureLifetime()
2473 unsigned ByteSizeInBits = CGM.getTarget().getCharWidth(); in BuildRCRecordLayout()
2479 const ASTRecordLayout &RL = CGM.getContext().getASTRecordLayout(RD); in BuildRCRecordLayout()
2481 CGM.getContext().toCharUnitsFromBits(RL.getFieldOffset(i)); in BuildRCRecordLayout()
2501 if (const ArrayType *Array = CGM.getContext().getAsArrayType(FQT)) { in BuildRCRecordLayout()
2506 while (const ArrayType *Array = CGM.getContext().getAsArrayType(FQT)) { in BuildRCRecordLayout()
2520 CharUnits Size = CGM.getContext().getTypeSizeInChars(RT); in BuildRCRecordLayout()
2530 CharUnits FieldSize = CGM.getContext().getTypeSizeInChars(Field->getType()); in BuildRCRecordLayout()
2550 = LastFieldBitfieldOrUnnamed->getBitWidthValue(CGM.getContext()); in BuildRCRecordLayout()
2564 = CGM.getContext().getTypeSizeInChars(LastFieldBitfieldOrUnnamed->getType()); in BuildRCRecordLayout()
2586 llvm::Type *Ty = CGM.getTypes().ConvertType(QualType(RT, 0)); in BuildRCBlockVarRecordLayout()
2588 CGM.getDataLayout().getStructLayout(cast<llvm::StructType>(Ty)); in BuildRCBlockVarRecordLayout()
2700 llvm::Constant *nullPtr = llvm::Constant::getNullValue(CGM.Int8PtrTy); in getBitmapBlockLayout()
2703 unsigned WordSizeInBits = CGM.getTarget().getPointerWidth(LangAS::Default); in getBitmapBlockLayout()
2704 unsigned ByteSizeInBits = CGM.getTarget().getCharWidth(); in getBitmapBlockLayout()
2774 if (CGM.getLangOpts().ObjCGCBitmapPrint) { in getBitmapBlockLayout()
2788 return llvm::ConstantInt::get(CGM.IntPtrTy, Result); in getBitmapBlockLayout()
2797 if (CGM.getLangOpts().ObjCGCBitmapPrint) { in getBitmapBlockLayout()
2882 void CGObjCCommonMac::fillRunSkipBlockVars(CodeGenModule &CGM, in fillRunSkipBlockVars() argument
2884 assert(CGM.getLangOpts().getGC() == LangOptions::NonGC); in fillRunSkipBlockVars()
2889 unsigned WordSizeInBits = CGM.getTarget().getPointerWidth(LangAS::Default); in fillRunSkipBlockVars()
2890 unsigned ByteSizeInBits = CGM.getTarget().getCharWidth(); in fillRunSkipBlockVars()
2897 CGM.getDataLayout().getStructLayout(blockInfo.StructureType); in fillRunSkipBlockVars()
2928 fieldSize = CGM.getContext().getTypeSizeInChars(type); in fillRunSkipBlockVars()
2935 CGObjCCommonMac::BuildRCBlockLayout(CodeGenModule &CGM, in BuildRCBlockLayout() argument
2937 fillRunSkipBlockVars(CGM, blockInfo); in BuildRCBlockLayout()
2941 std::string CGObjCCommonMac::getRCBlockLayoutStr(CodeGenModule &CGM, in getRCBlockLayoutStr() argument
2943 fillRunSkipBlockVars(CGM, blockInfo); in getRCBlockLayoutStr()
2947 llvm::Constant *CGObjCCommonMac::BuildByrefLayout(CodeGen::CodeGenModule &CGM, in BuildByrefLayout() argument
2949 assert(CGM.getLangOpts().getGC() == LangOptions::NonGC); in BuildByrefLayout()
2958 Result = llvm::ConstantExpr::getIntToPtr(Result, CGM.Int8PtrTy); in BuildByrefLayout()
2961 llvm::Constant *nullPtr = llvm::Constant::getNullValue(CGM.Int8PtrTy); in BuildByrefLayout()
2969 LazySymbols.insert(&CGM.getContext().Idents.get("Protocol")); in GenerateProtocolRef()
2999 llvm::Value *className = CGF.CGM in EmitClassRefViaRuntime()
3003 ASTContext &ctx = CGF.CGM.getContext(); in EmitClassRefViaRuntime()
3038 LazySymbols.insert(&CGM.getContext().Idents.get("Protocol")); in GetOrEmitProtocol()
3043 ConstantInitBuilder builder(CGM); in GetOrEmitProtocol()
3060 CGM.getPointerAlign(), in GetOrEmitProtocol()
3067 CGM.addCompilerUsedGlobal(Entry); in GetOrEmitProtocol()
3079 Entry = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ProtocolTy, in GetOrEmitProtocolRef()
3132 CGM.getDataLayout().getTypeAllocSize(ObjCTypes.ProtocolExtensionTy); in EmitProtocolExtension()
3134 ConstantInitBuilder builder(CGM); in EmitProtocolExtension()
3145 StringRef(), CGM.getPointerAlign(), true); in EmitProtocolExtension()
3164 ConstantInitBuilder builder(CGM); in EmitProtocolList()
3186 if (CGM.getTriple().isOSBinFormatMachO()) in EmitProtocolList()
3190 CreateMetadataVar(name, values, section, CGM.getPointerAlign(), false); in EmitProtocolList()
3231 const llvm::Triple &Triple = CGM.getTarget().getTriple(); in EmitPropertyList()
3277 CGM.getDataLayout().getTypeAllocSize(ObjCTypes.PropertyTy); in EmitPropertyList()
3279 ConstantInitBuilder builder(CGM); in EmitPropertyList()
3293 if (CGM.getTriple().isOSBinFormatMachO()) in EmitPropertyList()
3298 CreateMetadataVar(Name, values, Section, CGM.getPointerAlign(), true); in EmitPropertyList()
3315 if (CGM.getTriple().isOSBinFormatMachO() && ObjCABI == 2) in EmitProtocolMethodTypes()
3319 CreateMetadataVar(Name, Init, Section, CGM.getPointerAlign(), true); in EmitProtocolMethodTypes()
3336 unsigned Size = CGM.getDataLayout().getTypeAllocSize(ObjCTypes.CategoryTy); in GenerateCategory()
3350 ConstantInitBuilder Builder(CGM); in GenerateCategory()
3395 CGM.getPointerAlign(), true); in GenerateCategory()
3471 static bool hasMRCWeakIvars(CodeGenModule &CGM, in hasMRCWeakIvars() argument
3473 if (!CGM.getLangOpts().ObjCWeak) return false; in hasMRCWeakIvars()
3474 assert(CGM.getLangOpts().getGC() == LangOptions::NonGC); in hasMRCWeakIvars()
3507 &CGM.getContext().Idents.get(ID->getObjCRuntimeNameAsString()); in GenerateClass()
3524 if (CGM.getLangOpts().ObjCAutoRefCount) in GenerateClass()
3526 else if ((hasMRCWeak = hasMRCWeakIvars(CGM, ID))) in GenerateClass()
3530 CGM.getContext().getASTObjCImplementationLayout(ID).getSize(); in GenerateClass()
3560 ConstantInitBuilder builder(CGM); in GenerateClass()
3590 llvm::GlobalVariable *GV = CGM.getModule().getGlobalVariable(Name, true); in GenerateClass()
3596 GV->setAlignment(CGM.getPointerAlign().getAsAlign()); in GenerateClass()
3597 CGM.addCompilerUsedGlobal(GV); in GenerateClass()
3599 GV = CreateMetadataVar(Name, values, Section, CGM.getPointerAlign(), true); in GenerateClass()
3610 unsigned Size = CGM.getDataLayout().getTypeAllocSize(ObjCTypes.ClassTy); in EmitMetaClass()
3615 ConstantInitBuilder builder(CGM); in EmitMetaClass()
3651 llvm::GlobalVariable *GV = CGM.getModule().getGlobalVariable(Name, true); in EmitMetaClass()
3657 GV = values.finishAndCreateGlobal(Name, CGM.getPointerAlign(), in EmitMetaClass()
3662 CGM.addCompilerUsedGlobal(GV); in EmitMetaClass()
3678 llvm::GlobalVariable *GV = CGM.getModule().getGlobalVariable(Name, true); in EmitMetaClassRef()
3680 GV = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ClassTy, false, in EmitMetaClassRef()
3691 llvm::GlobalVariable *GV = CGM.getModule().getGlobalVariable(Name, true); in EmitSuperClassRef()
3694 GV = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ClassTy, false, in EmitSuperClassRef()
3721 layout = llvm::ConstantPointerNull::get(CGM.Int8PtrTy); in EmitClassExtension()
3740 CGM.getDataLayout().getTypeAllocSize(ObjCTypes.ClassExtensionTy); in EmitClassExtension()
3742 ConstantInitBuilder builder(CGM); in EmitClassExtension()
3750 CGM.getPointerAlign(), true); in EmitClassExtension()
3777 ConstantInitBuilder builder(CGM); in EmitIvarList()
3791 ivar.addInt(ObjCTypes.IntTy, ComputeIvarBaseOffset(CGM, OID, IVD)); in EmitIvarList()
3809 CGM.getPointerAlign(), true); in EmitIvarList()
3916 ConstantInitBuilder builder(CGM); in emitMethodList()
3926 CGM.getPointerAlign(), true); in emitMethodList()
3931 ConstantInitBuilder builder(CGM); in emitMethodList()
3943 CGM.getPointerAlign(), true); in emitMethodList()
3956 CodeGenTypes &Types = CGM.getTypes(); in GenerateMethod()
3961 Name, &CGM.getModule()); in GenerateMethod()
3991 CodeGenTypes &Types = CGM.getTypes(); in GenerateDirectMethod()
3997 "", &CGM.getModule()); in GenerateDirectMethod()
4008 Name, &CGM.getModule()); in GenerateDirectMethod()
4040 Selector SelfSel = GetNullarySelector("self", CGM.getContext()); in GenerateDirectMethodPrologue()
4073 llvm::MDBuilder MDHelper(CGM.getLLVMContext()); in GenerateDirectMethodPrologue()
4109 getLinkageTypeForObjCMetadata(CGM, Section); in CreateMetadataVar()
4115 CGM.addCompilerUsedGlobal(GV); in CreateMetadataVar()
4126 getLinkageTypeForObjCMetadata(CGM, Section); in CreateMetadataVar()
4128 new llvm::GlobalVariable(CGM.getModule(), Ty, false, LT, Init, Name); in CreateMetadataVar()
4133 CGM.addCompilerUsedGlobal(GV); in CreateMetadataVar()
4174 new llvm::GlobalVariable(CGM.getModule(), Value->getType(), in CreateCStringLiteral()
4177 if (CGM.getTriple().isOSBinFormatMachO()) in CreateCStringLiteral()
4181 CGM.addCompilerUsedGlobal(GV); in CreateCStringLiteral()
4924 unsigned Size = CGM.getDataLayout().getTypeAllocSize(SrcTy); in EmitObjCWeakAssign()
4926 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, CGM.Int32Ty) in EmitObjCWeakAssign()
4927 : CGF.Builder.CreateBitCast(src, CGM.Int64Ty); in EmitObjCWeakAssign()
4946 unsigned Size = CGM.getDataLayout().getTypeAllocSize(SrcTy); in EmitObjCGlobalAssign()
4948 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, CGM.Int32Ty) in EmitObjCGlobalAssign()
4949 : CGF.Builder.CreateBitCast(src, CGM.Int64Ty); in EmitObjCGlobalAssign()
4973 unsigned Size = CGM.getDataLayout().getTypeAllocSize(SrcTy); in EmitObjCIvarAssign()
4975 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, CGM.Int32Ty) in EmitObjCIvarAssign()
4976 : CGF.Builder.CreateBitCast(src, CGM.Int64Ty); in EmitObjCIvarAssign()
4993 unsigned Size = CGM.getDataLayout().getTypeAllocSize(SrcTy); in EmitObjCStrongCastAssign()
4995 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, CGM.Int32Ty) in EmitObjCStrongCastAssign()
4996 : CGF.Builder.CreateBitCast(src, CGM.Int64Ty); in EmitObjCStrongCastAssign()
5031 uint64_t Offset = ComputeIvarBaseOffset(CGM, Interface, Ivar); in EmitIvarOffset()
5033 CGM.getTypes().ConvertType(CGM.getContext().LongTy), in EmitIvarOffset()
5041 switch (CGM.getTriple().getObjectFormat()) { in GetSectionName()
5098 llvm::Module &Mod = CGM.getModule(); in EmitImageInfo()
5108 if (CGM.getLangOpts().getGC() == LangOptions::NonGC) { in EmitImageInfo()
5120 if (CGM.getLangOpts().getGC() == LangOptions::GCOnly) { in EmitImageInfo()
5136 if (CGM.getTarget().getTriple().isSimulatorEnvironment()) in EmitImageInfo()
5156 uint64_t Size = CGM.getDataLayout().getTypeAllocSize(ObjCTypes.ModuleTy); in EmitModuleInfo()
5158 ConstantInitBuilder builder(CGM); in EmitModuleInfo()
5167 CGM.getPointerAlign(), true); in EmitModuleInfo()
5178 ConstantInitBuilder builder(CGM); in EmitModuleSymbols()
5205 CGM.getPointerAlign(), true); in EmitModuleSymbols()
5219 CGM.getPointerAlign(), true); in EmitClassRefFromId()
5234 &CGM.getContext().Idents.get(ID->getObjCRuntimeNameAsString()); in EmitClassRef()
5239 IdentifierInfo *II = &CGM.getContext().Idents.get("NSAutoreleasePool"); in EmitNSAutoreleasePoolClassRef()
5248 CharUnits Align = CGM.getPointerAlign(); in EmitSelectorAddr()
5292 recLayout = &CGM.getContext().getASTRecordLayout(RD); in visitRecord()
5294 return CGM.getContext().toCharUnitsFromBits(offsetInBits); in visitRecord()
5324 if (auto arrayType = CGM.getContext().getAsIncompleteArrayType(fieldType)) { in visitField()
5329 while (auto arrayType = CGM.getContext().getAsConstantArrayType(fieldType)) { in visitField()
5349 CharUnits eltSize = CGM.getContext().getTypeSizeInChars(recType); in visitField()
5365 Qualifiers::GC GCAttr = GetGCAttrTypeForType(CGM.getContext(), fieldType); in visitField()
5370 assert(CGM.getContext().getTypeSizeInChars(fieldType) in visitField()
5371 == CGM.getPointerSize()); in visitField()
5453 const CharUnits WordSize = CGM.getPointerSize(); in buildBitmap()
5496 return llvm::ConstantPointerNull::get(CGM.Int8PtrTy); in buildBitmap()
5501 if (CGM.getLangOpts().getGC() != LangOptions::NonGC) { in buildBitmap()
5514 return getConstantGEP(CGM.getLLVMContext(), Entry, 0, 0); in buildBitmap()
5539 llvm::Type *PtrTy = CGM.Int8PtrTy; in BuildIvarLayout()
5540 if (CGM.getLangOpts().getGC() == LangOptions::NonGC && in BuildIvarLayout()
5541 !CGM.getLangOpts().ObjCAutoRefCount && in BuildIvarLayout()
5559 if (CGM.getLangOpts().getGC() == LangOptions::NonGC) { in BuildIvarLayout()
5568 CharUnits::fromQuantity(ComputeIvarBaseOffset(CGM, OMD, ivars[0])); in BuildIvarLayout()
5573 baseOffset = baseOffset.alignTo(CGM.getPointerAlign()); in BuildIvarLayout()
5576 CGM.getContext().DeepCollectObjCIvars(OI, true, ivars); in BuildIvarLayout()
5584 IvarLayoutBuilder builder(CGM, baseOffset, endOffset, ForStrongLayout); in BuildIvarLayout()
5588 return CharUnits::fromQuantity(ComputeIvarBaseOffset(CGM, OMD, ivar)); in BuildIvarLayout()
5597 if (CGM.getLangOpts().ObjCGCBitmapPrint && !buffer.empty()) { in BuildIvarLayout()
5616 return GetMethodVarName(CGM.getContext().Selectors.getNullarySelector(ID)); in GetMethodVarName()
5621 CGM.getContext().getObjCEncodingForType(Field->getType(), TypeStr, Field); in GetMethodVarType()
5632 CGM.getContext().getObjCEncodingForMethodDecl(D, Extended); in GetMethodVarType()
5654 CGM.getContext().getObjCEncodingForPropertyDecl(PD, Container); in GetPropertyTypeString()
5655 return GetPropertyName(&CGM.getContext().Idents.get(TypeStr)); in GetPropertyTypeString()
5668 ConstantInitBuilder builder(CGM); in FinishModule()
5676 CGM.addCompilerUsedGlobal(global); in FinishModule()
5685 CGM.getTriple().isOSBinFormatMachO()) { in FinishModule()
5687 Asm += CGM.getModule().getModuleInlineAsm(); in FinishModule()
5701 CGM.getModule().setModuleInlineAsm(OS.str()); in FinishModule()
5714 : VMContext(cgm.getLLVMContext()), CGM(cgm), ExternalProtocolPtrTy(nullptr) in ObjCCommonTypesHelper()
5716 CodeGen::CodeGenTypes &Types = CGM.getTypes(); in ObjCCommonTypesHelper()
5717 ASTContext &Ctx = CGM.getContext(); in ObjCCommonTypesHelper()
5718 unsigned ProgramAS = CGM.getDataLayout().getProgramAddressSpace(); in ObjCCommonTypesHelper()
5721 IntTy = CGM.IntTy; in ObjCCommonTypesHelper()
5723 Int8PtrTy = CGM.Int8PtrTy; in ObjCCommonTypesHelper()
5724 Int8PtrProgramASTy = llvm::PointerType::get(CGM.Int8Ty, ProgramAS); in ObjCCommonTypesHelper()
5725 Int8PtrPtrTy = CGM.Int8PtrPtrTy; in ObjCCommonTypesHelper()
5729 if (CGM.getTarget().getTriple().getArch() == llvm::Triple::aarch64) in ObjCCommonTypesHelper()
5955 llvm::Type *StackPtrTy = llvm::ArrayType::get(CGM.Int8PtrTy, 4); in ObjCTypesHelper()
5959 llvm::ArrayType::get(CGM.Int32Ty, SetJmpBufferSize), StackPtrTy); in ObjCTypesHelper()
6095 CodeGen::CodeGenTypes &Types = CGM.getTypes(); in ObjCNonFragileABITypesHelper()
6096 ASTContext &Ctx = CGM.getContext(); in ObjCNonFragileABITypesHelper()
6171 assert((!CGM.getTriple().isOSBinFormatMachO() || in AddModuleClassList()
6175 CGM.getModule(), Init->getType(), false, in AddModuleClassList()
6177 GV->setAlignment(CGM.getDataLayout().getABITypeAlign(Init->getType())); in AddModuleClassList()
6179 CGM.addCompilerUsedGlobal(GV); in AddModuleClassList()
6229 switch (CGM.getCodeGenOpts().getObjCDispatchMethod()) { in isVTableDispatchedSelector()
6250 if (CGM.getLangOpts().getGC() != LangOptions::GCOnly) { in isVTableDispatchedSelector()
6266 if (CGM.getLangOpts().getGC() != LangOptions::NonGC) { in isVTableDispatchedSelector()
6272 &CGM.getContext().Idents.get("countByEnumeratingWithState"), in isVTableDispatchedSelector()
6273 &CGM.getContext().Idents.get("objects"), in isVTableDispatchedSelector()
6274 &CGM.getContext().Idents.get("count")}; in isVTableDispatchedSelector()
6276 CGM.getContext().Selectors.getSelector(3, KeyIdents)); in isVTableDispatchedSelector()
6309 if (CGM.getLangOpts().ObjCAutoRefCount) in BuildClassRoTInitializer()
6311 else if ((hasMRCWeak = hasMRCWeakIvars(CGM, ID))) in BuildClassRoTInitializer()
6314 ConstantInitBuilder builder(CGM); in BuildClassRoTInitializer()
6370 return finishAndCreateGlobal(values, roLabel, CGM); in BuildClassRoTInitializer()
6390 ConstantInitBuilder builder(CGM); in BuildClassObject()
6406 if (CGM.getTriple().isOSBinFormatMachO()) in BuildClassObject()
6408 GV->setAlignment(CGM.getDataLayout().getABITypeAlign(ObjCTypes.ClassnfABITy)); in BuildClassObject()
6409 if (!CGM.getTriple().isOSBinFormatCOFF()) in BuildClassObject()
6426 CGM.getContext().getASTObjCImplementationLayout(OID); in GetClassSizeInfo()
6435 InstanceStart = RL.getFieldOffset(0) / CGM.getContext().getCharWidth(); in GetClassSizeInfo()
6438 static llvm::GlobalValue::DLLStorageClassTypes getStorage(CodeGenModule &CGM, in getStorage() argument
6440 IdentifierInfo &II = CGM.getContext().Idents.get(Name); in getStorage()
6441 TranslationUnitDecl *TUDecl = CGM.getContext().getTranslationUnitDecl(); in getStorage()
6461 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.CacheTy, false, in GenerateClass()
6464 if (CGM.getTriple().isOSBinFormatCOFF()) in GenerateClass()
6465 ObjCEmptyCacheVar->setDLLStorageClass(getStorage(CGM, "_objc_empty_cache")); in GenerateClass()
6468 const llvm::Triple &Triple = CGM.getTarget().getTriple(); in GenerateClass()
6471 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ImpnfABITy, false, in GenerateClass()
6481 CGM.getDataLayout().getTypeAllocSize(ObjCTypes.ClassnfABITy); in GenerateClass()
6491 bool classIsHidden = (CGM.getTriple().isOSBinFormatCOFF()) in GenerateClass()
6528 CGM.setGVProperties(MetaTClass, CI); in GenerateClass()
6549 if (hasObjCExceptionAttribute(CGM.getContext(), CI)) in GenerateClass()
6568 CGM.setGVProperties(ClassMD, CI); in GenerateClass()
6605 llvm::GlobalVariable *PTGV = CGM.getModule().getGlobalVariable(ProtocolName); in GenerateProtocolRef()
6608 PTGV = new llvm::GlobalVariable(CGM.getModule(), Init->getType(), false, in GenerateProtocolRef()
6615 if (!CGM.getTriple().isOSBinFormatMachO()) in GenerateProtocolRef()
6616 PTGV->setComdat(CGM.getModule().getOrInsertComdat(ProtocolName)); in GenerateProtocolRef()
6617 CGM.addUsedGlobal(PTGV); in GenerateProtocolRef()
6642 ConstantInitBuilder builder(CGM); in GenerateCategory()
6708 CGM.getDataLayout().getTypeAllocSize(ObjCTypes.CategorynfABITy); in GenerateCategory()
6712 finishAndCreateGlobal(values, ExtCatName.str(), CGM); in GenerateCategory()
6713 CGM.addCompilerUsedGlobal(GCATV); in GenerateCategory()
6807 ConstantInitBuilder builder(CGM); in emitMethodList()
6811 unsigned Size = CGM.getDataLayout().getTypeAllocSize(ObjCTypes.MethodTy); in emitMethodList()
6820 llvm::GlobalVariable *GV = finishAndCreateGlobal(values, prefix + name, CGM); in emitMethodList()
6821 CGM.addCompilerUsedGlobal(GV); in emitMethodList()
6835 llvm::GlobalVariable *IvarOffsetGV = CGM.getModule().getGlobalVariable(Name); in ObjCIvarOffsetVariable()
6838 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.IvarOffsetVarTy, in ObjCIvarOffsetVariable()
6841 if (CGM.getTriple().isOSBinFormatCOFF()) { in ObjCIvarOffsetVariable()
6867 CGM.getDataLayout().getABITypeAlign(ObjCTypes.IvarOffsetVarTy)); in EmitIvarOffsetVar()
6869 if (!CGM.getTriple().isOSBinFormatCOFF()) { in EmitIvarOffsetVar()
6886 if (CGM.getTriple().isOSBinFormatMachO()) in EmitIvarOffsetVar()
6911 ConstantInitBuilder builder(CGM); in EmitIvarList()
6914 CGM.getDataLayout().getTypeAllocSize(ObjCTypes.IvarnfABITy)); in EmitIvarList()
6931 ComputeIvarBaseOffset(CGM, ID, IVD))); in EmitIvarList()
6935 CGM.getTypes().ConvertTypeForMem(IVD->getType()); in EmitIvarList()
6936 unsigned Size = CGM.getDataLayout().getTypeAllocSize(FieldTy); in EmitIvarList()
6937 unsigned Align = CGM.getContext().getPreferredTypeAlign( in EmitIvarList()
6962 ivarList, Prefix + OID->getObjCRuntimeNameAsString(), CGM); in EmitIvarList()
6963 CGM.addCompilerUsedGlobal(GV); in EmitIvarList()
6981 Entry = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ProtocolnfABITy, in GetOrEmitProtocolRef()
6984 if (!CGM.getTriple().isOSBinFormatMachO()) in GetOrEmitProtocolRef()
6985 Entry->setComdat(CGM.getModule().getOrInsertComdat(Protocol)); in GetOrEmitProtocolRef()
7026 ConstantInitBuilder builder(CGM); in GetOrEmitProtocol()
7048 CGM.getDataLayout().getTypeAllocSize(ObjCTypes.ProtocolnfABITy); in GetOrEmitProtocol()
7072 Entry = values.finishAndCreateGlobal(symbolName, CGM.getPointerAlign(), in GetOrEmitProtocol()
7075 if (!CGM.getTriple().isOSBinFormatMachO()) in GetOrEmitProtocol()
7076 Entry->setComdat(CGM.getModule().getOrInsertComdat(symbolName)); in GetOrEmitProtocol()
7081 CGM.addUsedGlobal(Entry); in GetOrEmitProtocol()
7090 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ProtocolnfABIPtrTy, in GetOrEmitProtocol()
7093 if (!CGM.getTriple().isOSBinFormatMachO()) in GetOrEmitProtocol()
7094 PTGV->setComdat(CGM.getModule().getOrInsertComdat(ProtocolRef)); in GetOrEmitProtocol()
7096 CGM.getDataLayout().getABITypeAlign(ObjCTypes.ProtocolnfABIPtrTy)); in GetOrEmitProtocol()
7100 CGM.addUsedGlobal(PTGV); in GetOrEmitProtocol()
7136 CGM.getModule().getGlobalVariable(TmpName.str(), true); in EmitProtocolList()
7140 ConstantInitBuilder builder(CGM); in EmitProtocolList()
7154 GV = finishAndCreateGlobal(values, Name, CGM); in EmitProtocolList()
7155 CGM.addCompilerUsedGlobal(GV); in EmitProtocolList()
7185 ComputeIvarBaseOffset(CGM, Interface->getImplementation(), Ivar)); in EmitIvarOffset()
7266 if (CGM.ReturnSlotInterferesWithArgs(MSI.CallInfo)) { in EmitVTableMessageSend()
7275 } else if (!isSuper && CGM.ReturnTypeUsesFPRet(resultType)) { in EmitVTableMessageSend()
7295 = CGM.getModule().getGlobalVariable(messageRefName); in EmitVTableMessageSend()
7298 ConstantInitBuilder builder(CGM); in EmitVTableMessageSend()
7311 if (CGM.getLangOpts().ObjCAutoRefCount && method) in EmitVTableMessageSend()
7369 && CGM.getTriple().isOSBinFormatCOFF() in GetClassGlobal()
7381 llvm::GlobalVariable *GV = CGM.getModule().getGlobalVariable(Name); in GetClassGlobal()
7394 CGM.getModule().insertGlobalVariable(GV); in GetClassGlobal()
7413 auto *Idx = llvm::ConstantInt::get(CGM.Int32Ty, 1); in GetClassGlobalForClassRef()
7414 return llvm::ConstantExpr::getGetElementPtr(CGM.Int8Ty, ClassGV, Idx); in GetClassGlobalForClassRef()
7452 CGM.getModule(), ClassGV->getType(), false, in EmitClassRefFromId()
7453 getLinkageTypeForObjCMetadata(CGM, SectionName), ClassGV, in EmitClassRefFromId()
7459 CGM.addCompilerUsedGlobal(Entry); in EmitClassRefFromId()
7477 IdentifierInfo *II = &CGM.getContext().Idents.get("NSAutoreleasePool"); in EmitNSAutoreleasePoolClassRef()
7490 Entry = new llvm::GlobalVariable(CGM.getModule(), ClassGV->getType(), false, in EmitSuperClassRef()
7495 CGM.addCompilerUsedGlobal(Entry); in EmitSuperClassRef()
7513 Entry = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ClassnfABIPtrTy, in EmitMetaClassRef()
7518 CGM.addCompilerUsedGlobal(Entry); in EmitMetaClassRef()
7573 CGM.getTypes().ConvertType(CGF.getContext().getObjCClassType()); in GenerateMessageSendSuper()
7598 CharUnits Align = CGM.getPointerAlign(); in EmitSelectorAddr()
7603 CGM.getModule(), ObjCTypes.SelectorPtrTy, false, in EmitSelectorAddr()
7604 getLinkageTypeForObjCMetadata(CGM, SectionName), GetMethodVarName(Sel), in EmitSelectorAddr()
7609 CGM.addCompilerUsedGlobal(Entry); in EmitSelectorAddr()
7624 unsigned Size = CGM.getDataLayout().getTypeAllocSize(SrcTy); in EmitObjCIvarAssign()
7645 unsigned Size = CGM.getDataLayout().getTypeAllocSize(SrcTy); in EmitObjCStrongCastAssign()
7690 unsigned Size = CGM.getDataLayout().getTypeAllocSize(SrcTy); in EmitObjCWeakAssign()
7712 unsigned Size = CGM.getDataLayout().getTypeAllocSize(SrcTy); in EmitObjCGlobalAssign()
7741 auto *IDEHType = CGM.getModule().getGlobalVariable("OBJC_EHTYPE_id"); in GetEHType()
7744 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.EHTypeTy, false, in GetEHType()
7747 if (CGM.getTriple().isOSBinFormatCOFF()) in GetEHType()
7748 IDEHType->setDLLStorageClass(getStorage(CGM, "OBJC_EHTYPE_id")); in GetEHType()
7805 if (hasObjCExceptionAttribute(CGM.getContext(), ID)) { in GetInterfaceEHType()
7807 Entry = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.EHTypeTy, in GetInterfaceEHType()
7810 CGM.setGVProperties(Entry, ID); in GetInterfaceEHType()
7819 auto *VTableGV = CGM.getModule().getGlobalVariable(VTableName); in GetInterfaceEHType()
7822 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.Int8PtrTy, false, in GetInterfaceEHType()
7825 if (CGM.getTriple().isOSBinFormatCOFF()) in GetInterfaceEHType()
7826 VTableGV->setDLLStorageClass(getStorage(CGM, VTableName)); in GetInterfaceEHType()
7829 llvm::Value *VTableIdx = llvm::ConstantInt::get(CGM.Int32Ty, 2); in GetInterfaceEHType()
7830 ConstantInitBuilder builder(CGM); in GetInterfaceEHType()
7843 Entry->setAlignment(CGM.getPointerAlign().getAsAlign()); in GetInterfaceEHType()
7846 CGM.getPointerAlign(), in GetInterfaceEHType()
7849 if (hasObjCExceptionAttribute(CGM.getContext(), ID)) in GetInterfaceEHType()
7850 CGM.setGVProperties(Entry, ID); in GetInterfaceEHType()
7854 if (!CGM.getTriple().isOSBinFormatCOFF()) in GetInterfaceEHType()
7859 if (CGM.getTriple().isOSBinFormatMachO()) in GetInterfaceEHType()
7868 CodeGen::CreateMacObjCRuntime(CodeGen::CodeGenModule &CGM) { in CreateMacObjCRuntime() argument
7869 switch (CGM.getLangOpts().ObjCRuntime.getKind()) { in CreateMacObjCRuntime()
7871 return new CGObjCMac(CGM); in CreateMacObjCRuntime()
7876 return new CGObjCNonFragileABIMac(CGM); in CreateMacObjCRuntime()