Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:VTable

351   // Skip over the offset (and the vtable load) if we're supposed to
534 /// way which requires the vtable to be properly set.
546 // external code might potentially access the vtable.
1423 /// any vtable pointers before calling this destructor.
1521 // Initialize the vtable pointers before entering the body.
1771 // Generate function call for handling vtable pointer poisoning.
1776 // Poison vtable and vtable ptr if they exist for this class.
1835 // Poison the vtable pointer such that access after the base
1861 // Poison the vtable pointer if it has no virtual bases, but inherits
2187 // Generate vtable assumptions if we're constructing a complete object
2188 // with a vtable. We don't do this for base subobjects for two reasons:
2191 // We also have to make sure if we can refer to vtable:
2192 // - Otherwise we can refer to vtable if it's safe to speculatively emit.
2193 // FIXME: If vtable is used by ctor/dtor, or if vtable is external and we are
2194 // sure that definition of vtable is not hidden,
2197 // assumes. Make assumption loads require -fstrict-vtable-pointers temporarily.
2556 // Initialize the vtable pointer for this base.
2568 // Ignore classes without a vtable.
2604 // Ignore classes without a vtable.
2608 // Initialize the vtable pointers for this class and all of its bases.
2621 llvm::Instruction *VTable = Builder.CreateLoad(VTablePtrSrc, "vtable");
2623 CGM.DecorateInstructionWithTBAA(VTable, TBAAInfo);
2627 CGM.DecorateInstructionWithInvariantGroup(VTable, RD);
2629 return VTable;
2668 llvm::Value *VTable,
2671 EmitVTablePtrCheckForCall(RD, VTable, CodeGenFunction::CFITCK_VCall, Loc);
2681 llvm::Value *CastedVTable = Builder.CreateBitCast(VTable, Int8PtrTy);
2690 llvm::Value *VTable,
2696 EmitVTablePtrCheck(RD, VTable, TCK, Loc);
2733 llvm::Value *VTable;
2734 std::tie(VTable, ClassDecl) = CGM.getCXXABI().LoadVTablePtr(
2737 EmitVTablePtrCheck(ClassDecl, VTable, TCK, Loc);
2746 llvm::Value *VTable,
2789 llvm::Value *CastedVTable = Builder.CreateBitCast(VTable, Int8PtrTy);
2837 const CXXRecordDecl *RD, llvm::Value *VTable, uint64_t VTableByteOffset) {
2846 llvm::Value *CastedVTable = Builder.CreateBitCast(VTable, Int8PtrTy);
2863 cast<llvm::PointerType>(VTable->getType())->getElementType());