reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/CodeGen/CGVTT.cpp
   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);