| /llvm-project-15.0.7/clang/lib/CodeGen/ |
| H A D | CGVTT.cpp | 23 const VTTVTable &VTable, in GetAddrOfVTTVTable() argument 26 if (VTable.getBase() == MostDerivedClass) { in GetAddrOfVTTVTable() 27 assert(VTable.getBaseOffset().isZero() && in GetAddrOfVTTVTable() 34 VTable.getBaseSubobject(), in GetAddrOfVTTVTable() 35 VTable.isVirtual(), in GetAddrOfVTTVTable() 61 llvm::GlobalVariable *VTable = VTables[i->VTableIndex]; in EmitVTTDefinition() local 81 VTable->getValueType(), VTable, Idxs, /*InBounds=*/true, in EmitVTTDefinition()
|
| H A D | CGVTables.cpp | 901 llvm::GlobalVariable *VTable = in GenerateConstructionVTable() local 915 components.finishAndSetAsInitializer(VTable); in GenerateConstructionVTable() 920 CGM.setGVProperties(VTable, RD); in GenerateConstructionVTable() 925 GenerateRelativeVTableAlias(VTable, OutName); in GenerateConstructionVTable() 927 return VTable; in GenerateConstructionVTable() 946 if (VTable->hasAvailableExternallyLinkage()) in GenerateRelativeVTableAlias() 953 VTable->setName(AliasName + ".local"); in GenerateRelativeVTableAlias() 955 auto Linkage = VTable->getLinkage(); in GenerateRelativeVTableAlias() 972 if (!VTable->hasComdat()) { in GenerateRelativeVTableAlias() 983 VTableAlias->setAliasee(VTable); in GenerateRelativeVTableAlias() [all …]
|
| H A D | CGCXX.cpp | 254 llvm::Value *VTable = CGM.getCXXABI().getAddrOfVTable(RD, CharUnits()); in BuildAppleKextVirtualCall() local 256 VTable = CGF.Builder.CreateBitCast(VTable, Ty->getPointerTo()); in BuildAppleKextVirtualCall() 257 assert(VTable && "BuildVirtualCall = kext vtbl pointer is null"); in BuildAppleKextVirtualCall() 265 CGF.Builder.CreateConstInBoundsGEP1_64(Ty, VTable, VTableIndex, "vfnkxt"); in BuildAppleKextVirtualCall()
|
| H A D | ItaniumCXXABI.cpp | 1739 VTable->setComdat(CGM.getModule().getOrInsertComdat(VTable->getName())); in emitVTableDefinitions() 1773 CGVT.GenerateRelativeVTableAlias(VTable, VTable->getName()); in emitVTableDefinitions() 1871 if (VTable) in getAddrOfVTable() 1872 return VTable; in getAddrOfVTable() 1917 return VTable; in getAddrOfVTable() 1941 VTable = CGF.Builder.CreateBitCast(VTable, CGM.Int8PtrTy); in getVirtualFunctionPointer() 1947 VTable = in getVirtualFunctionPointer() 3570 if (!VTable) in BuildVTablePointer() 3583 VTable = llvm::ConstantExpr::getBitCast(VTable, CGM.Int8PtrTy); in BuildVTablePointer() 3584 VTable = in BuildVTablePointer() [all …]
|
| H A D | MicrosoftCXXABI.cpp | 1725 if (VTable->hasInitializer()) in emitVTableDefinitions() 1852 VTable = VTableAliasIsRequred in getAddrOfVTable() 1856 return VTable; in getAddrOfVTable() 1893 VTable->getValueType(), VTable, GEPIndices); in getAddrOfVTable() 1909 VFTable = VTable; in getAddrOfVTable() 1912 VTable->setComdat(C); in getAddrOfVTable() 1918 return VTable; in getAddrOfVTable() 1954 getObjectWithVPtr(), VTable, Ty, in getVirtualFunctionPointer() 2091 llvm::Value *VTable = CGF.GetVTablePtr( in EmitVirtualMemPtrThunk() local 2095 ThunkPtrTy, VTable, ML.Index, "vfn"); in EmitVirtualMemPtrThunk() [all …]
|
| H A D | CGClass.cpp | 2648 CGM.DecorateInstructionWithTBAA(VTable, TBAAInfo); in GetVTablePtr() 2652 CGM.DecorateInstructionWithInvariantGroup(VTable, RD); in GetVTablePtr() 2654 return VTable; in GetVTablePtr() 2693 llvm::Value *VTable, in EmitTypeMetadataCodeForVCall() argument 2721 llvm::Value *VTable, in EmitVTablePtrCheckForCall() argument 2727 EmitVTablePtrCheck(RD, VTable, TCK, Loc); in EmitVTablePtrCheckForCall() 2763 llvm::Value *VTable; in EmitVTablePtrCheckForCast() local 2764 std::tie(VTable, ClassDecl) = in EmitVTablePtrCheckForCast() 2767 EmitVTablePtrCheck(ClassDecl, VTable, TCK, Loc); in EmitVTablePtrCheckForCast() 2776 llvm::Value *VTable, in EmitVTablePtrCheck() argument [all …]
|
| H A D | CGVTables.h | 155 void GenerateRelativeVTableAlias(llvm::GlobalVariable *VTable,
|
| H A D | CodeGenModule.h | 1433 llvm::GlobalVariable *VTable, 1465 void AddVTableTypeMetadata(llvm::GlobalVariable *VTable, CharUnits Offset,
|
| H A D | CGExprCXX.cpp | 399 llvm::Value *VTable; in EmitCXXMemberOrOperatorMemberCallExpr() local 401 std::tie(VTable, RD) = CGM.getCXXABI().LoadVTablePtr( in EmitCXXMemberOrOperatorMemberCallExpr() 403 EmitVTablePtrCheckForCall(RD, VTable, CFITCK_NVCall, CE->getBeginLoc()); in EmitCXXMemberOrOperatorMemberCallExpr()
|
| H A D | CodeGenFunction.h | 2313 void EmitVTablePtrCheckForCall(const CXXRecordDecl *RD, llvm::Value *VTable, 2318 void EmitVTablePtrCheck(const CXXRecordDecl *RD, llvm::Value *VTable, 2325 llvm::Value *VTable, SourceLocation Loc); 2334 llvm::Value *VTable,
|
| H A D | CodeGenModule.cpp | 6809 void CodeGenModule::AddVTableTypeMetadata(llvm::GlobalVariable *VTable, in AddVTableTypeMetadata() argument 6814 VTable->addTypeMetadata(Offset.getQuantity(), MD); in AddVTableTypeMetadata() 6818 VTable->addTypeMetadata(Offset.getQuantity(), in AddVTableTypeMetadata() 6823 VTable->addTypeMetadata(Offset.getQuantity(), MD); in AddVTableTypeMetadata()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/IPO/ |
| H A D | GlobalDCE.cpp | 210 GlobalVariable *VTable = VTableInfo.first; in ScanVTableLoad() local 214 getPointerAtOffset(VTable->getInitializer(), VTableOffset + CallOffset, in ScanVTableLoad() 215 *Caller->getParent(), VTable); in ScanVTableLoad() 218 VFESafeVTables.erase(VTable); in ScanVTableLoad() 225 VFESafeVTables.erase(VTable); in ScanVTableLoad() 286 for (auto *VTable : VFESafeVTables) in AddVirtualFunctionDependencies() 287 dbgs() << " " << VTable->getName() << "\n"; in AddVirtualFunctionDependencies()
|
| H A D | WholeProgramDevirt.cpp | 410 Value *VTable = nullptr; member 516 void addCallSite(Value *VTable, CallBase &CB, unsigned *NumUnsafeUses); 536 void VTableSlotInfo::addCallSite(Value *VTable, CallBase &CB, in addCallSite() argument 540 CSI.CallSites.push_back({VTable, CB, NumUnsafeUses}); in addCallSite() 1409 Args.push_back(IRB.CreateBitCast(VCallSite.VTable, Int8PtrTy)); in applyICallBranchFunnel() 1598 B.CreateICmp(IsOne ? ICmpInst::ICMP_EQ : ICmpInst::ICMP_NE, Call.VTable, in applyUniqueRetValOpt() 1599 B.CreateBitCast(UniqueMemberAddr, Call.VTable->getType())); in applyUniqueRetValOpt() 1670 B.CreateGEP(Int8Ty, B.CreateBitCast(Call.VTable, Int8PtrTy), Byte); in applyVirtualConstProp()
|
| /llvm-project-15.0.7/llvm/include/llvm/DebugInfo/PDB/ |
| H A D | UDTLayout.h | 100 std::unique_ptr<PDBSymbolTypeVTable> VTable); 106 std::unique_ptr<PDBSymbolTypeVTable> VTable; variable 143 VTableLayoutItem *VTable = nullptr; variable
|
| H A D | PDBSymbolTypeVTable.h | 20 DECLARE_PDB_SYMBOL_CONCRETE_TYPE(PDB_SymType::VTable)
|
| H A D | PDBTypes.h | 269 VTable, enumerator
|
| /llvm-project-15.0.7/llvm/lib/DebugInfo/PDB/ |
| H A D | UDTLayout.cpp | 102 VTable(std::move(VT)) { in VTableLayoutItem() 103 auto VTableType = cast<PDBSymbolTypePointer>(VTable->getType()); in VTableLayoutItem() 224 VTable = VTLayout.get(); in initializeChildren()
|
| H A D | PDBSymbol.cpp | 90 FACTORY_SYMTAG_CASE(VTable, PDBSymbolTypeVTable) in createSymbol()
|
| H A D | PDBExtras.cpp | 265 CASE_OUTPUT_ENUM_CLASS_NAME(PDB_SymType, VTable, OS) in operator <<()
|
| /llvm-project-15.0.7/llvm/unittests/DebugInfo/PDB/ |
| H A D | PDBApiTest.cpp | 438 InsertItemWithTag(PDB_SymType::VTable); in SetUp() 500 VerifyDyncast<PDBSymbolTypeVTable>(PDB_SymType::VTable); in TEST_F()
|
| /llvm-project-15.0.7/llvm/unittests/DebugInfo/CodeView/ |
| H A D | TypeIndexDiscoveryTest.cpp | 393 TEST_F(TypeIndexIteratorTest, VTable) { in TEST_F() argument
|
| /llvm-project-15.0.7/llvm/docs/ |
| H A D | TypeMetadata.rst | 91 :header: VTable for, Offset, Compatible Class
|
| /llvm-project-15.0.7/lldb/source/Plugins/SymbolFile/PDB/ |
| H A D | PDBASTParser.cpp | 288 case PDB_SymType::VTable: { in GetClassOrFunctionParent()
|
| /llvm-project-15.0.7/clang/include/clang/Basic/ |
| H A D | DiagnosticASTKinds.td | 405 let CategoryName = "VTable ABI Issue" in {
|
| /llvm-project-15.0.7/clang/docs/ |
| H A D | ControlFlowIntegrityDesign.rst | 293 .. [1] `Protecting C++ Dynamic Dispatch Through VTable Interleaving <https://cseweb.ucsd.edu/~lerne…
|