reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
44 VTTBuilder Builder(CGM.getContext(), RD, /*GenerateDefinition=*/true); 46 llvm::Type *Int8PtrTy = CGM.Int8PtrTy, *Int32Ty = CGM.Int32Ty; 46 llvm::Type *Int8PtrTy = CGM.Int8PtrTy, *Int32Ty = CGM.Int32Ty; 55 VTables.push_back(GetAddrOfVTTVTable(*this, CGM, RD, *i, Linkage, 98 if (CGM.supportsCOMDAT() && VTT->isWeakForLinker()) 99 VTT->setComdat(CGM.getModule().getOrInsertComdat(VTT->getName())); 102 CGM.setGVProperties(VTT, RD); 110 cast<ItaniumMangleContext>(CGM.getCXXABI().getMangleContext()) 115 (void) CGM.getCXXABI().getAddrOfVTable(RD, CharUnits()); 117 VTTBuilder Builder(CGM.getContext(), RD, /*GenerateDefinition=*/false); 120 llvm::ArrayType::get(CGM.Int8PtrTy, Builder.getVTTComponents().size()); 121 unsigned Align = CGM.getDataLayout().getABITypeAlignment(CGM.Int8PtrTy); 121 unsigned Align = CGM.getDataLayout().getABITypeAlignment(CGM.Int8PtrTy); 123 llvm::GlobalVariable *GV = CGM.CreateOrReplaceCXXRuntimeVariable( 137 VTTBuilder Builder(CGM.getContext(), RD, /*GenerateDefinition=*/false); 163 VTTBuilder Builder(CGM.getContext(), RD, /*GenerateDefinition=*/false);tools/clang/lib/CodeGen/CGVTables.cpp
496 MangleContext &MCtx = CGM.getCXXABI().getMangleContext(); 502 llvm::Type *ThunkVTableTy = CGM.getTypes().GetFunctionTypeForVTable(GD); 503 llvm::Constant *Thunk = CGM.GetAddrOfThunk(Name, ThunkVTableTy, GD); 506 bool IsUnprototyped = !CGM.getTypes().isFuncTypeConvertible( 508 if (!shouldEmitVTableThunk(CGM, MD, IsUnprototyped, ForVTable)) 514 IsUnprototyped ? CGM.getTypes().arrangeUnprototypedMustTailThunk(MD) 515 : CGM.getTypes().arrangeGlobalDeclaration(GD); 516 llvm::FunctionType *ThunkFnTy = CGM.getTypes().GetFunctionType(FnInfo); 529 Name.str(), &CGM.getModule()); 530 CGM.SetLLVMFunctionAttributes(MD, FnInfo, ThunkFn); 543 bool ABIHasKeyFunctions = CGM.getTarget().getCXXABI().hasKeyFunctions(); 552 setThunkProperties(CGM, TI, ThunkFn, ForVTable, GD); 563 CGM.SetLLVMFunctionAttributesForDefinition(GD.getDecl(), ThunkFn); 574 switch (CGM.getTriple().getArch()) { 590 CodeGenFunction(CGM).GenerateVarArgsThunk(ThunkFn, FnInfo, GD, TI); 593 CodeGenFunction(CGM).generateThunk(ThunkFn, FnInfo, GD, TI, IsUnprototyped); 596 setThunkProperties(CGM, TI, ThunkFn, ForVTable, GD); 625 llvm::ConstantInt::get(CGM.PtrDiffTy, offset.getQuantity()), 626 CGM.Int8PtrTy)); 640 return builder.add(llvm::ConstantExpr::getBitCast(rtti, CGM.Int8PtrTy)); 662 if (CGM.getLangOpts().CUDA) { 670 CGM.getLangOpts().CUDAIsDevice 674 return builder.addNullPointer(CGM.Int8PtrTy); 680 llvm::FunctionType::get(CGM.VoidTy, /*isVarArg=*/false); 682 CGM.CreateRuntimeFunction(fnTy, name).getCallee()); 685 return llvm::ConstantExpr::getBitCast(fn, CGM.Int8PtrTy); 694 getSpecialVirtualFn(CGM.getCXXABI().GetPureVirtualCallName()); 701 getSpecialVirtualFn(CGM.getCXXABI().GetDeletedVirtualCallName()); 714 llvm::Type *fnTy = CGM.getTypes().GetFunctionTypeForVTable(GD); 715 fnPtr = CGM.GetAddrOfFunction(GD, fnTy, /*ForVTable=*/true); 718 fnPtr = llvm::ConstantExpr::getBitCast(fnPtr, CGM.Int8PtrTy); 724 return builder.addNullPointer(CGM.Int8PtrTy); 733 tys.push_back(llvm::ArrayType::get(CGM.Int8PtrTy, layout.getVTableSize(i))); 736 return llvm::StructType::get(CGM.getLLVMContext(), tys); 744 auto vtableElem = builder.beginArray(CGM.Int8PtrTy); 760 if (CGDebugInfo *DI = CGM.getModuleDebugInfo()) 773 cast<ItaniumMangleContext>(CGM.getCXXABI().getMangleContext()) 788 unsigned Align = CGM.getDataLayout().getABITypeAlignment(VTType); 792 CGM.CreateOrReplaceCXXRuntimeVariable(Name, VTType, Linkage, Align); 797 llvm::Constant *RTTI = CGM.GetAddrOfRTTIDescriptor( 798 CGM.getContext().getTagDeclType(Base.getBase())); 801 ConstantInitBuilder builder(CGM); 809 CGM.setGVProperties(VTable, RD); 811 CGM.EmitVTableTypeMetadata(RD, VTable, *VTLayout.get()); 924 if (CGDebugInfo *DI = CGM.getModuleDebugInfo()) 928 CGM.getCXXABI().emitVirtualInheritanceTables(RD); 930 CGM.getCXXABI().emitVTableDefinitions(*this, RD); 948 if (CGM.getTarget().getCXXABI().isMicrosoft()) 965 const CXXMethodDecl *keyFunction = CGM.getContext().getCurrentKeyFunction(RD);