Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:VPtr

2118 void CodeGenFunction::EmitVTableAssumptionLoad(const VPtr &Vptr, Address This) {
2120 Vptr.Base, Vptr.VTableClass);
2125 CharUnits NonVirtualOffset = Vptr.Base.getBaseOffset();
2130 Vptr.VTableClass, Vptr.NearestVBase);
2133 GetVTablePtr(This, VTableGlobal->getType(), Vptr.VTableClass);
2142 for (const VPtr &Vptr : getVTablePointers(ClassDecl))
2143 EmitVTableAssumptionLoad(Vptr, This);
2309 void CodeGenFunction::InitializeVTablePointer(const VPtr &Vptr) {
2313 *this, Vptr.VTableClass, Vptr.Base, Vptr.NearestVBase);
2322 if (CGM.getCXXABI().isVirtualOffsetNeededForVTableField(*this, Vptr)) {
2327 *this, LoadCXXThisAddress(), Vptr.VTableClass, Vptr.NearestVBase);
2328 NonVirtualOffset = Vptr.OffsetFromNearestVBase;
2331 NonVirtualOffset = Vptr.Base.getBaseOffset();
2339 *this, VTableField, NonVirtualOffset, VirtualOffset, Vptr.VTableClass,
2340 Vptr.NearestVBase);
2355 CGM.DecorateInstructionWithInvariantGroup(Store, Vptr.VTableClass);
2381 VPtr Vptr = {Base, NearestVBase, OffsetFromNearestVBase, VTableClass};
2382 Vptrs.push_back(Vptr);
2434 for (const VPtr &Vptr : getVTablePointers(RD))
2435 InitializeVTablePointer(Vptr);