Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:Ivar

916   /// BuildIvarLayout - Builds ivar layout bitmap for the class
922 /// actually have any entries, because the ivar might be under-aligned.
964 /// ivar layout bitmap.
1089 /// to store the weak ivar layout and properties. The return value
1109 /// EmitIvarList - Emit the ivar list for the given
1260 llvm::Value *BaseValue, const ObjCIvarDecl *Ivar,
1264 const ObjCIvarDecl *Ivar) override;
1328 /// EmitIvarList - Emit the ivar list for the given
1336 const ObjCIvarDecl *Ivar,
1392 /// ObjCIvarOffsetVariable - Returns the ivar offset variable for
1393 /// the given ivar.
1397 const ObjCIvarDecl *Ivar);
1435 // and ivar belongs to instance method's class and one of its super class.
1436 // This check is needed because the ivar offset is a lazily
1441 // base of the ivar access is a parameter to an Objective C method.
1552 llvm::Value *BaseValue, const ObjCIvarDecl *Ivar,
1556 const ObjCIvarDecl *Ivar) override;
1809 // isa" is the first ivar in a class (which it must be).
1987 case Qualifiers::OCL_Autoreleasing: llvm_unreachable("autoreleasing ivar?");
3227 for (const ObjCIvarDecl *ivar =
3229 ivar; ivar = ivar->getNextIvar()) {
3230 if (hasWeakMember(ivar->getType()))
3520 // When emitting the root class GCC emits ivar entries for the
3535 llvm::Constant *Ivar[] = {
3541 Ivars.push_back(llvm::ConstantStruct::get(ObjCTypes.IvarTy, Ivar));
4480 /// EmitObjCValueForIvar - Code Gen for ivar reference.
4485 const ObjCIvarDecl *Ivar,
4489 return EmitValueForIvarAtOffset(CGF, ID, BaseValue, Ivar, CVRQualifiers,
4490 EmitIvarOffset(CGF, ID, Ivar));
4495 const ObjCIvarDecl *Ivar) {
4496 uint64_t Offset = ComputeIvarBaseOffset(CGM, Interface, Ivar);
4729 /// ivar layout bitmap.
4785 assert(!fieldType->isArrayType() && "ivar of non-constant array type?");
4840 // Sort the ivar info on byte position in case we encounterred a
4841 // union nested in the ivar list.
4974 /// BuildIvarLayout - Builds ivar layout bitmap for the class
4976 /// The layout map displays which words in ivar list must be skipped
5012 // starting at the offset of the first ivar, rounded up to word alignment.
5044 [&](const ObjCIvarDecl *ivar) -> CharUnits {
5045 return CharUnits::fromQuantity(ComputeIvarBaseOffset(CGM, OMD, ivar));
5055 printf("\n%s ivar layout for class '%s': ",
5227 // arm64 targets use "int" ivar offset variables. All others,
5228 // including OS X x86_64 and Windows x86_64, use "long" ivar offsets.
5542 // unsigned [long] int *offset; // pointer to ivar offset location
6315 /// ObjCIvarOffsetVariable - Returns the ivar offset variable for
6316 /// the given ivar.
6319 const ObjCIvarDecl *Ivar) {
6321 const ObjCInterfaceDecl *Container = Ivar->getContainingInterface();
6325 Name += Ivar->getName();
6337 const ObjCIvarDecl *Ivar,
6339 llvm::GlobalVariable *IvarOffsetGV = ObjCIvarOffsetVariable(ID, Ivar);
6347 if (Ivar->getAccessControl() == ObjCIvarDecl::Private ||
6348 Ivar->getAccessControl() == ObjCIvarDecl::Package ||
6357 /// EmitIvarList - Emit the ivar list for the given
6361 /// unsigned [long] int *offset; // pointer to ivar offset location
6389 llvm::Constant *Ivar[5];
6390 Ivar[0] = EmitIvarOffsetVar(ID->getClassInterface(), IVD,
6392 Ivar[1] = GetMethodVarName(IVD->getIdentifier());
6393 Ivar[2] = GetMethodVarType(IVD);
6400 Ivar[3] = llvm::ConstantInt::get(ObjCTypes.IntTy, Align);
6406 Ivar[4] = llvm::ConstantInt::get(ObjCTypes.IntTy, Size);
6407 Ivars.push_back(llvm::ConstantStruct::get(ObjCTypes.IvarnfABITy, Ivar));
6669 /// EmitObjCValueForIvar - Code Gen for nonfragile ivar reference.
6672 /// (type *)((char *)base + _OBJC_IVAR_$_.ivar;
6679 const ObjCIvarDecl *Ivar,
6682 llvm::Value *Offset = EmitIvarOffset(CGF, ID, Ivar);
6683 return EmitValueForIvarAtOffset(CGF, ID, BaseValue, Ivar, CVRQualifiers,
6690 const ObjCIvarDecl *Ivar) {
6691 llvm::Value *IvarOffsetValue = ObjCIvarOffsetVariable(Interface, Ivar);
6693 CGF.getSizeAlign(), "ivar");
6694 if (IsIvarOffsetKnownIdempotent(CGF, Ivar))
6700 // Cast it to 64bit integer value, if it is a 32bit integer ivar offset value
6704 IvarOffsetValue, ObjCTypes.LongTy, true, "ivar.conv");