Lines Matching defs:Vptr
2360 void CodeGenFunction::EmitVTableAssumptionLoad(const VPtr &Vptr, Address This) {
2362 CGM.getCXXABI().getVTableAddressPoint(Vptr.Base, Vptr.VTableClass);
2367 CharUnits NonVirtualOffset = Vptr.Base.getBaseOffset();
2372 Vptr.VTableClass, Vptr.NearestVBase);
2375 GetVTablePtr(This, VTableGlobal->getType(), Vptr.VTableClass);
2384 for (const VPtr &Vptr : getVTablePointers(ClassDecl))
2385 EmitVTableAssumptionLoad(Vptr, This);
2547 void CodeGenFunction::InitializeVTablePointer(const VPtr &Vptr) {
2551 *this, Vptr.VTableClass, Vptr.Base, Vptr.NearestVBase);
2560 if (CGM.getCXXABI().isVirtualOffsetNeededForVTableField(*this, Vptr)) {
2565 *this, LoadCXXThisAddress(), Vptr.VTableClass, Vptr.NearestVBase);
2566 NonVirtualOffset = Vptr.OffsetFromNearestVBase;
2569 NonVirtualOffset = Vptr.Base.getBaseOffset();
2576 *this, VTableField, NonVirtualOffset, VirtualOffset, Vptr.VTableClass,
2577 Vptr.NearestVBase);
2588 this, Vptr.Base.getBase(), VTableField.emitRawPointer(*this)))
2597 CGM.DecorateInstructionWithInvariantGroup(Store, Vptr.VTableClass);
2623 VPtr Vptr = {Base, NearestVBase, OffsetFromNearestVBase, VTableClass};
2624 Vptrs.push_back(Vptr);
2676 for (const VPtr &Vptr : getVTablePointers(RD))
2677 InitializeVTablePointer(Vptr);