Lines Matching refs:ObjCTypes

983                                     const ObjCCommonTypesHelper &ObjCTypes);
990 const ObjCCommonTypesHelper &ObjCTypes);
996 const ObjCCommonTypesHelper &ObjCTypes);
1004 const ObjCCommonTypesHelper &ObjCTypes);
1038 const ObjCCommonTypesHelper &ObjCTypes);
1076 ObjCTypesHelper ObjCTypes;
1095 /// EmitClassRef - Return a Value*, of type ObjCTypes.ClassPtrTy,
1179 /// EmitSelector - Return a Value*, of type ObjCTypes.SelectorPtrTy,
1277 ObjCNonFragileABITypesHelper ObjCTypes;
1374 /// EmitClassRef - Return a Value*, of type ObjCTypes.ClassPtrTy,
1384 /// EmitSuperClassRef - Return a Value*, of type ObjCTypes.ClassPtrTy,
1401 /// EmitSelector - Return a Value*, of type ObjCTypes.SelectorPtrTy,
1504 return ObjCTypes.getGetPropertyFn();
1507 return ObjCTypes.getSetPropertyFn();
1512 return ObjCTypes.getOptimizedSetPropertyFn(atomic, copy);
1516 return ObjCTypes.getCopyStructFn();
1519 return ObjCTypes.getCopyStructFn();
1522 return ObjCTypes.getCppAtomicObjectFunction();
1525 return ObjCTypes.getCppAtomicObjectFunction();
1529 return ObjCTypes.getEnumerationMutationFn();
1707 ObjCTypes(cgm) {
1793 CGF.CreateTempAlloca(ObjCTypes.SuperTy, "objc_super");
1795 CGF.Builder.CreateBitCast(Receiver, ObjCTypes.ObjectPtrTy);
1827 // ObjCTypes types.
1835 ObjCSuper, ObjCTypes.SuperPtrCTy,
1836 true, CallArgs, Method, ObjCTypes);
1851 false, CallArgs, Method, ObjCTypes);
1864 const ObjCCommonTypesHelper &ObjCTypes) {
1867 Arg0 = CGF.Builder.CreateBitCast(Arg0, ObjCTypes.ObjectPtrTy);
1885 Fn = (ObjCABI == 2) ? ObjCTypes.getSendStretFn2(IsSuper)
1886 : ObjCTypes.getSendStretFn(IsSuper);
1888 Fn = (ObjCABI == 2) ? ObjCTypes.getSendFpretFn2(IsSuper)
1889 : ObjCTypes.getSendFpretFn(IsSuper);
1891 Fn = (ObjCABI == 2) ? ObjCTypes.getSendFp2RetFn2(IsSuper)
1892 : ObjCTypes.getSendFp2retFn(IsSuper);
1898 Fn = (ObjCABI == 2) ? ObjCTypes.getSendFn2(IsSuper)
1899 : ObjCTypes.getSendFn(IsSuper);
2532 ObjCTypes.getExternalProtocolPtrTy());
2638 llvm::Constant *Init = llvm::ConstantStruct::get(ObjCTypes.ProtocolTy,
2647 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ProtocolTy, false,
2671 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ProtocolTy, false,
2699 CGM.getDataLayout().getTypeAllocSize(ObjCTypes.ProtocolExtensionTy);
2701 llvm::ConstantInt::get(ObjCTypes.IntTy, Size),
2710 PD, ObjCTypes),
2712 MethodTypesExt, ObjCTypes)
2718 return llvm::Constant::getNullValue(ObjCTypes.ProtocolExtensionPtrTy);
2721 llvm::ConstantStruct::get(ObjCTypes.ProtocolExtensionTy, Values);
2746 return llvm::Constant::getNullValue(ObjCTypes.ProtocolListPtrTy);
2749 ProtocolRefs.push_back(llvm::Constant::getNullValue(ObjCTypes.ProtocolPtrTy));
2753 Values[0] = llvm::Constant::getNullValue(ObjCTypes.ProtocolListPtrTy);
2754 Values[1] = llvm::ConstantInt::get(ObjCTypes.LongTy,
2757 llvm::ConstantArray::get(llvm::ArrayType::get(ObjCTypes.ProtocolPtrTy,
2765 return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.ProtocolListPtrTy);
2773 const ObjCCommonTypesHelper &ObjCTypes) {
2775 PushProtocolProperties(PropertySet, Properties, Container, P, ObjCTypes);
2783 Properties.push_back(llvm::ConstantStruct::get(ObjCTypes.PropertyTy, Prop));
2802 const ObjCCommonTypesHelper &ObjCTypes) {
2811 Properties.push_back(llvm::ConstantStruct::get(ObjCTypes.PropertyTy,
2816 PushProtocolProperties(PropertySet, Properties, Container, P, ObjCTypes);
2820 PushProtocolProperties(PropertySet, Properties, Container, P, ObjCTypes);
2825 return llvm::Constant::getNullValue(ObjCTypes.PropertyListPtrTy);
2828 CGM.getDataLayout().getTypeAllocSize(ObjCTypes.PropertyTy);
2830 Values[0] = llvm::ConstantInt::get(ObjCTypes.IntTy, PropertySize);
2831 Values[1] = llvm::ConstantInt::get(ObjCTypes.IntTy, Properties.size());
2832 llvm::ArrayType *AT = llvm::ArrayType::get(ObjCTypes.PropertyTy,
2843 return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.PropertyListPtrTy);
2849 const ObjCCommonTypesHelper &ObjCTypes) {
2852 return llvm::Constant::getNullValue(ObjCTypes.Int8PtrPtrTy);
2854 llvm::ArrayType *AT = llvm::ArrayType::get(ObjCTypes.Int8PtrTy,
2861 return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.Int8PtrPtrTy);
2874 ObjCTypes.SelectorPtrTy),
2880 return llvm::ConstantStruct::get(ObjCTypes.MethodDescriptionTy,
2889 return llvm::Constant::getNullValue(ObjCTypes.MethodDescriptionListPtrTy);
2892 Values[0] = llvm::ConstantInt::get(ObjCTypes.IntTy, Methods.size());
2893 llvm::ArrayType *AT = llvm::ArrayType::get(ObjCTypes.MethodDescriptionTy,
2900 ObjCTypes.MethodDescriptionListPtrTy);
2915 unsigned Size = CGM.getDataLayout().getTypeAllocSize(ObjCTypes.CategoryTy);
2956 Values[4] = llvm::Constant::getNullValue(ObjCTypes.ProtocolListPtrTy);
2958 Values[5] = llvm::ConstantInt::get(ObjCTypes.IntTy, Size);
2963 OCD, Category, ObjCTypes);
2965 Values[6] = llvm::Constant::getNullValue(ObjCTypes.PropertyListPtrTy);
2968 llvm::Constant *Init = llvm::ConstantStruct::get(ObjCTypes.CategoryTy,
3084 ObjCTypes.ClassPtrTy);
3086 Values[ 1] = llvm::Constant::getNullValue(ObjCTypes.ClassPtrTy);
3090 Values[ 3] = llvm::ConstantInt::get(ObjCTypes.LongTy, 0);
3091 Values[ 4] = llvm::ConstantInt::get(ObjCTypes.LongTy, Flags);
3092 Values[ 5] = llvm::ConstantInt::get(ObjCTypes.LongTy, Size);
3099 Values[ 8] = llvm::Constant::getNullValue(ObjCTypes.CachePtrTy);
3103 llvm::Constant *Init = llvm::ConstantStruct::get(ObjCTypes.ClassTy,
3111 assert(GV->getType()->getElementType() == ObjCTypes.ClassTy &&
3130 unsigned Size = CGM.getDataLayout().getTypeAllocSize(ObjCTypes.ClassTy);
3142 ObjCTypes.ClassPtrTy);
3149 ObjCTypes.ClassPtrTy);
3151 Values[ 1] = llvm::Constant::getNullValue(ObjCTypes.ClassPtrTy);
3155 Values[ 3] = llvm::ConstantInt::get(ObjCTypes.LongTy, 0);
3156 Values[ 4] = llvm::ConstantInt::get(ObjCTypes.LongTy, Flags);
3157 Values[ 5] = llvm::ConstantInt::get(ObjCTypes.LongTy, Size);
3164 Values[ 8] = llvm::Constant::getNullValue(ObjCTypes.CachePtrTy);
3167 Values[10] = llvm::Constant::getNullValue(ObjCTypes.Int8PtrTy);
3169 Values[11] = llvm::Constant::getNullValue(ObjCTypes.ClassExtensionPtrTy);
3170 llvm::Constant *Init = llvm::ConstantStruct::get(ObjCTypes.ClassTy,
3179 assert(GV->getType()->getElementType() == ObjCTypes.ClassTy &&
3183 GV = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ClassTy, false,
3208 GV = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ClassTy, false,
3212 assert(GV->getType()->getElementType() == ObjCTypes.ClassTy &&
3223 GV = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ClassTy, false,
3227 assert(GV->getType()->getElementType() == ObjCTypes.ClassTy &&
3243 CGM.getDataLayout().getTypeAllocSize(ObjCTypes.ClassExtensionTy);
3246 Values[0] = llvm::ConstantInt::get(ObjCTypes.IntTy, Size);
3249 ID, ID->getClassInterface(), ObjCTypes);
3253 return llvm::Constant::getNullValue(ObjCTypes.ClassExtensionPtrTy);
3256 llvm::ConstantStruct::get(ObjCTypes.ClassExtensionTy, Values);
3284 return llvm::Constant::getNullValue(ObjCTypes.IvarListPtrTy);
3296 llvm::ConstantInt::get(ObjCTypes.IntTy,
3299 Ivars.push_back(llvm::ConstantStruct::get(ObjCTypes.IvarTy, Ivar));
3304 return llvm::Constant::getNullValue(ObjCTypes.IvarListPtrTy);
3307 Values[0] = llvm::ConstantInt::get(ObjCTypes.IntTy, Ivars.size());
3308 llvm::ArrayType *AT = llvm::ArrayType::get(ObjCTypes.IvarTy,
3322 return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.IvarListPtrTy);
3349 ObjCTypes.SelectorPtrTy),
3351 llvm::ConstantExpr::getBitCast(Fn, ObjCTypes.Int8PtrTy)
3353 return llvm::ConstantStruct::get(ObjCTypes.MethodTy, Method);
3361 return llvm::Constant::getNullValue(ObjCTypes.MethodListPtrTy);
3364 Values[0] = llvm::Constant::getNullValue(ObjCTypes.Int8PtrTy);
3365 Values[1] = llvm::ConstantInt::get(ObjCTypes.IntTy, Methods.size());
3366 llvm::ArrayType *AT = llvm::ArrayType::get(ObjCTypes.MethodTy,
3372 return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.MethodListPtrTy);
3419 return ObjCTypes.getGetPropertyFn();
3423 return ObjCTypes.getSetPropertyFn();
3428 return ObjCTypes.getOptimizedSetPropertyFn(atomic, copy);
3432 return ObjCTypes.getCopyStructFn();
3435 return ObjCTypes.getCopyStructFn();
3439 return ObjCTypes.getCppAtomicObjectFunction();
3442 return ObjCTypes.getCppAtomicObjectFunction();
3446 return ObjCTypes.getEnumerationMutationFn();
3464 ObjCTypesHelper &ObjCTypes;
3469 ObjCTypesHelper *ObjCTypes)
3471 ExceptionData(ExceptionData), ObjCTypes(*ObjCTypes) {}
3484 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionTryExitFn(),
3514 CGF.EmitNounwindRuntimeCall(ObjCTypes.getSyncExitFn(), SyncArg);
3802 SyncArg = CGF.Builder.CreateBitCast(SyncArg, ObjCTypes.ObjectPtrTy);
3803 CGF.EmitNounwindRuntimeCall(ObjCTypes.getSyncEnterFn(), SyncArg);
3811 llvm::Value *ExceptionData = CGF.CreateTempAlloca(ObjCTypes.ExceptionDataTy,
3840 &ObjCTypes);
3845 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionTryEnterFn(), ExceptionData);
3853 CGF.EmitNounwindRuntimeCall(ObjCTypes.getSetJmpFn(), SetJmpBuffer, "setjmp_result");
3890 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionExtractFn(),
3912 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionTryEnterFn(),
3916 CGF.EmitNounwindRuntimeCall(ObjCTypes.getSetJmpFn(),
3989 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionMatchFn(),
4047 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionExtractFn(),
4079 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionExtractFn(),
4084 CGF.EmitNounwindRuntimeCall(ObjCTypes.getExceptionThrowFn(),
4100 CGF.Builder.CreateBitCast(Exception, ObjCTypes.ObjectPtrTy);
4107 CGF.EmitRuntimeCall(ObjCTypes.getExceptionThrowFn(), ExceptionAsObject)
4124 ObjCTypes.PtrObjectPtrTy);
4126 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcReadWeakFn(),
4141 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy)
4142 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongLongTy);
4143 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy);
4145 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy);
4146 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy);
4148 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignWeakFn(),
4163 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy)
4164 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongLongTy);
4165 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy);
4167 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy);
4168 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy);
4171 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignGlobalFn(),
4174 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignThreadLocalFn(),
4190 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy)
4191 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongLongTy);
4192 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy);
4194 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy);
4195 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy);
4197 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignIvarFn(), args);
4210 src = (Size == 4) ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy)
4211 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongLongTy);
4212 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy);
4214 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy);
4215 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy);
4217 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignStrongCastFn(),
4226 SrcPtr = CGF.Builder.CreateBitCast(SrcPtr, ObjCTypes.Int8PtrTy);
4227 DestPtr = CGF.Builder.CreateBitCast(DestPtr, ObjCTypes.Int8PtrTy);
4229 CGF.EmitNounwindRuntimeCall(ObjCTypes.GcMemmoveCollectableFn(), args);
4339 uint64_t Size = CGM.getDataLayout().getTypeAllocSize(ObjCTypes.ModuleTy);
4342 llvm::ConstantInt::get(ObjCTypes.LongTy, ModuleVersion),
4343 llvm::ConstantInt::get(ObjCTypes.LongTy, Size),
4349 llvm::ConstantStruct::get(ObjCTypes.ModuleTy, Values),
4360 return llvm::Constant::getNullValue(ObjCTypes.SymtabPtrTy);
4363 Values[0] = llvm::ConstantInt::get(ObjCTypes.LongTy, 0);
4364 Values[1] = llvm::Constant::getNullValue(ObjCTypes.SelectorPtrTy);
4365 Values[2] = llvm::ConstantInt::get(ObjCTypes.ShortTy, NumClasses);
4366 Values[3] = llvm::ConstantInt::get(ObjCTypes.ShortTy, NumCategories);
4380 ObjCTypes.Int8PtrTy);
4385 ObjCTypes.Int8PtrTy);
4388 llvm::ConstantArray::get(llvm::ArrayType::get(ObjCTypes.Int8PtrTy,
4398 return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.SymtabPtrTy);
4410 ObjCTypes.ClassPtrTy);
4437 ObjCTypes.SelectorPtrTy);
4476 const ObjCCommonTypesHelper &ObjCTypes) {
4477 return llvm::Constant::getNullValue(ObjCTypes.Int8PtrTy);
4964 Values[0] = llvm::Constant::getNullValue(ObjCTypes.ProtocolExtensionPtrTy);
4966 Values[2] = llvm::Constant::getNullValue(ObjCTypes.ProtocolListPtrTy);
4968 llvm::Constant::getNullValue(ObjCTypes.MethodDescriptionListPtrTy);
4970 I->second->setInitializer(llvm::ConstantStruct::get(ObjCTypes.ProtocolTy,
5007 ObjCTypes(cgm) {
5495 ObjCTypes.Int8PtrTy);
5497 llvm::ConstantArray::get(llvm::ArrayType::get(ObjCTypes.Int8PtrTy,
5635 Values[ 0] = llvm::ConstantInt::get(ObjCTypes.IntTy, flags);
5636 Values[ 1] = llvm::ConstantInt::get(ObjCTypes.IntTy, InstanceStart);
5637 Values[ 2] = llvm::ConstantInt::get(ObjCTypes.IntTy, InstanceSize);
5640 ? GetIvarLayoutName(nullptr, ObjCTypes)
5681 Values[ 7] = llvm::Constant::getNullValue(ObjCTypes.IvarListnfABIPtrTy);
5682 Values[ 8] = GetIvarLayoutName(nullptr, ObjCTypes);
5683 Values[ 9] = llvm::Constant::getNullValue(ObjCTypes.PropertyListPtrTy);
5688 ID, ID->getClassInterface(), ObjCTypes);
5690 llvm::Constant *Init = llvm::ConstantStruct::get(ObjCTypes.ClassRonfABITy,
5693 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ClassRonfABITy, false,
5701 CGM.getDataLayout().getABITypeAlignment(ObjCTypes.ClassRonfABITy));
5728 Values[1] = llvm::Constant::getNullValue(ObjCTypes.ClassnfABIPtrTy);
5731 llvm::PointerType::getUnqual(ObjCTypes.ImpnfABITy));
5732 llvm::Constant *Init = llvm::ConstantStruct::get(ObjCTypes.ClassnfABITy,
5738 CGM.getDataLayout().getABITypeAlignment(ObjCTypes.ClassnfABITy));
5770 ObjCTypes.CacheTy,
5785 ObjCTypes.ImpnfABITy,
5795 CGM.getDataLayout().getTypeAllocSize(ObjCTypes.ClassnfABITy);
5926 ObjCTypes.getExternalProtocolPtrTy());
6007 OCD, Category, ObjCTypes);
6009 Values[4] = llvm::Constant::getNullValue(ObjCTypes.ProtocolListnfABIPtrTy);
6010 Values[5] = llvm::Constant::getNullValue(ObjCTypes.PropertyListPtrTy);
6014 llvm::ConstantStruct::get(ObjCTypes.CategorynfABITy,
6017 = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.CategorynfABITy,
6024 CGM.getDataLayout().getABITypeAlignment(ObjCTypes.CategorynfABITy));
6047 ObjCTypes.SelectorPtrTy),
6049 llvm::ConstantExpr::getBitCast(Fn, ObjCTypes.Int8PtrTy)
6051 return llvm::ConstantStruct::get(ObjCTypes.MethodTy, Method);
6067 return llvm::Constant::getNullValue(ObjCTypes.MethodListnfABIPtrTy);
6071 unsigned Size = CGM.getDataLayout().getTypeAllocSize(ObjCTypes.MethodTy);
6072 Values[0] = llvm::ConstantInt::get(ObjCTypes.IntTy, Size);
6074 Values[1] = llvm::ConstantInt::get(ObjCTypes.IntTy, Methods.size());
6075 llvm::ArrayType *AT = llvm::ArrayType::get(ObjCTypes.MethodTy,
6087 return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.MethodListnfABIPtrTy);
6102 CGM.getModule(), ObjCTypes.IvarOffsetVarTy, false,
6113 llvm::ConstantInt::get(ObjCTypes.IvarOffsetVarTy, Offset));
6115 CGM.getDataLayout().getABITypeAlignment(ObjCTypes.IvarOffsetVarTy));
6172 Ivar[3] = llvm::ConstantInt::get(ObjCTypes.IntTy, Align);
6178 Ivar[4] = llvm::ConstantInt::get(ObjCTypes.IntTy, Size);
6179 Ivars.push_back(llvm::ConstantStruct::get(ObjCTypes.IvarnfABITy, Ivar));
6183 return llvm::Constant::getNullValue(ObjCTypes.IvarListnfABIPtrTy);
6186 unsigned Size = CGM.getDataLayout().getTypeAllocSize(ObjCTypes.IvarnfABITy);
6187 Values[0] = llvm::ConstantInt::get(ObjCTypes.IntTy, Size);
6188 Values[1] = llvm::ConstantInt::get(ObjCTypes.IntTy, Ivars.size());
6189 llvm::ArrayType *AT = llvm::ArrayType::get(ObjCTypes.IvarnfABITy,
6205 return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.IvarListnfABIPtrTy);
6217 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ProtocolnfABITy,
6294 Values[0] = llvm::Constant::getNullValue(ObjCTypes.ObjectPtrTy);
6317 nullptr, PD, ObjCTypes);
6319 CGM.getDataLayout().getTypeAllocSize(ObjCTypes.ProtocolnfABITy);
6320 Values[8] = llvm::ConstantInt::get(ObjCTypes.IntTy, Size);
6321 Values[9] = llvm::Constant::getNullValue(ObjCTypes.IntTy);
6324 MethodTypesExt, ObjCTypes);
6325 llvm::Constant *Init = llvm::ConstantStruct::get(ObjCTypes.ProtocolnfABITy,
6334 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ProtocolnfABITy,
6338 CGM.getDataLayout().getABITypeAlignment(ObjCTypes.ProtocolnfABITy));
6349 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ProtocolnfABIPtrTy,
6353 CGM.getDataLayout().getABITypeAlignment(ObjCTypes.ProtocolnfABIPtrTy));
6376 return llvm::Constant::getNullValue(ObjCTypes.ProtocolListnfABIPtrTy);
6384 return llvm::ConstantExpr::getBitCast(GV, ObjCTypes.ProtocolListnfABIPtrTy);
6391 ObjCTypes.ProtocolnfABIPtrTy));
6395 llvm::ConstantInt::get(ObjCTypes.LongTy, ProtocolRefs.size() - 1);
6397 llvm::ConstantArray::get(llvm::ArrayType::get(ObjCTypes.ProtocolnfABIPtrTy,
6411 ObjCTypes.ProtocolListnfABIPtrTy);
6426 ObjCTypes.SelectorPtrTy);
6432 Desc[2] = llvm::Constant::getNullValue(ObjCTypes.Int8PtrTy);
6433 return llvm::ConstantStruct::get(ObjCTypes.MethodTy, Desc);
6468 if (ObjCTypes.IvarOffsetVarTy == ObjCTypes.IntTy)
6470 IvarOffsetValue, ObjCTypes.LongTy, true, "ivar.conv");
6512 arg0 = CGF.Builder.CreateBitCast(arg0, ObjCTypes.ObjectPtrTy);
6517 args.add(RValue::get(nullptr), ObjCTypes.MessageRefCPtrTy);
6536 fn = ObjCTypes.getMessageSendSuper2StretFixupFn();
6540 fn = ObjCTypes.getMessageSendStretFixupFn();
6544 fn = ObjCTypes.getMessageSendFpretFixupFn();
6548 fn = ObjCTypes.getMessageSendSuper2FixupFn();
6551 fn = ObjCTypes.getMessageSendFixupFn();
6591 CGF.Builder.CreateBitCast(messageRef, ObjCTypes.MessageRefPtrTy);
6624 false, CallArgs, Method, ObjCTypes);
6636 GV = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ClassnfABITy,
6652 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ClassnfABIPtrTy,
6658 ObjCTypes.ClassnfABIPtrTy));
6687 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ClassnfABIPtrTy,
6693 ObjCTypes.ClassnfABIPtrTy));
6714 Entry = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.ClassnfABIPtrTy,
6719 CGM.getDataLayout().getABITypeAlignment(ObjCTypes.ClassnfABIPtrTy));
6761 CGF.CreateTempAlloca(ObjCTypes.SuperTy, "objc_super");
6764 CGF.Builder.CreateBitCast(Receiver, ObjCTypes.ObjectPtrTy);
6777 // ObjCTypes types.
6786 ObjCSuper, ObjCTypes.SuperPtrCTy,
6790 ObjCSuper, ObjCTypes.SuperPtrCTy,
6791 true, CallArgs, Method, ObjCTypes);
6801 ObjCTypes.SelectorPtrTy);
6803 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.SelectorPtrTy, false,
6832 src = (Size == 4 ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy)
6833 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongTy));
6834 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy);
6836 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy);
6837 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy);
6839 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignIvarFn(), args);
6852 src = (Size == 4 ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy)
6853 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongTy));
6854 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy);
6856 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy);
6857 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy);
6859 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignStrongCastFn(),
6868 SrcPtr = CGF.Builder.CreateBitCast(SrcPtr, ObjCTypes.Int8PtrTy);
6869 DestPtr = CGF.Builder.CreateBitCast(DestPtr, ObjCTypes.Int8PtrTy);
6871 CGF.EmitNounwindRuntimeCall(ObjCTypes.GcMemmoveCollectableFn(), args);
6882 AddrWeakObj = CGF.Builder.CreateBitCast(AddrWeakObj, ObjCTypes.PtrObjectPtrTy);
6884 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcReadWeakFn(),
6899 src = (Size == 4 ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy)
6900 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongTy));
6901 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy);
6903 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy);
6904 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy);
6906 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignWeakFn(),
6920 src = (Size == 4 ? CGF.Builder.CreateBitCast(src, ObjCTypes.IntTy)
6921 : CGF.Builder.CreateBitCast(src, ObjCTypes.LongTy));
6922 src = CGF.Builder.CreateIntToPtr(src, ObjCTypes.Int8PtrTy);
6924 src = CGF.Builder.CreateBitCast(src, ObjCTypes.ObjectPtrTy);
6925 dst = CGF.Builder.CreateBitCast(dst, ObjCTypes.PtrObjectPtrTy);
6928 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignGlobalFn(),
6931 CGF.EmitNounwindRuntimeCall(ObjCTypes.getGcAssignThreadLocalFn(),
6939 cast<llvm::Function>(ObjCTypes.getSyncEnterFn()),
6940 cast<llvm::Function>(ObjCTypes.getSyncExitFn()));
6952 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.EHTypeTy,
6971 cast<llvm::Function>(ObjCTypes.getObjCBeginCatchFn()),
6972 cast<llvm::Function>(ObjCTypes.getObjCEndCatchFn()),
6973 cast<llvm::Function>(ObjCTypes.getExceptionRethrowFn()));
6982 Exception = CGF.Builder.CreateBitCast(Exception, ObjCTypes.ObjectPtrTy);
6983 CGF.EmitRuntimeCallOrInvoke(ObjCTypes.getExceptionThrowFn(), Exception)
6986 CGF.EmitRuntimeCallOrInvoke(ObjCTypes.getExceptionRethrowFn())
7010 new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.EHTypeTy, false,
7025 VTableGV = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.Int8PtrTy,
7038 llvm::ConstantStruct::get(ObjCTypes.EHTypeTy, Values);
7046 Entry = new llvm::GlobalVariable(CGM.getModule(), ObjCTypes.EHTypeTy, false,
7057 ObjCTypes.EHTypeTy));