Lines Matching refs:GD
36 GlobalDecl GD) { in GetAddrOfThunk() argument
37 return GetOrCreateLLVMFunction(Name, FnTy, GD, /*ForVTable=*/true, in GetAddrOfThunk()
43 GlobalDecl GD) { in setThunkProperties() argument
44 CGM.setFunctionLinkage(GD, ThunkFn); in setThunkProperties()
45 CGM.getCXXABI().setThunkLinkage(ThunkFn, ForVTable, GD, in setThunkProperties()
49 CGM.setGVProperties(ThunkFn, GD); in setThunkProperties()
168 GlobalDecl GD, const ThunkInfo &Thunk) { in GenerateVarArgsThunk() argument
169 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in GenerateVarArgsThunk()
176 llvm::Value *Callee = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true); in GenerateVarArgsThunk()
248 void CodeGenFunction::StartThunk(llvm::Function *Fn, GlobalDecl GD, in StartThunk() argument
252 CurGD = GD; in StartThunk()
256 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in StartThunk()
261 else if (CGM.getCXXABI().HasThisReturn(GD)) in StartThunk()
263 else if (CGM.getCXXABI().hasMostDerivedReturn(GD)) in StartThunk()
409 void CodeGenFunction::EmitMustTailThunk(GlobalDecl GD, in EmitMustTailThunk() argument
444 CGM.ConstructAttributeList(Callee.getCallee()->getName(), *CurFnInfo, GD, in EmitMustTailThunk()
463 const CGFunctionInfo &FnInfo, GlobalDecl GD, in generateThunk() argument
466 StartThunk(Fn, GD, FnInfo, IsUnprototyped); in generateThunk()
478 llvm::Constant *Callee = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true); in generateThunk()
503 llvm::Constant *CodeGenVTables::maybeEmitThunk(GlobalDecl GD, in maybeEmitThunk() argument
506 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in maybeEmitThunk()
516 MCtx.mangleCXXDtorThunk(DD, GD.getDtorType(), TI, in maybeEmitThunk()
521 if (CGM.getContext().useAbbreviatedThunkName(GD, Name.str())) { in maybeEmitThunk()
524 MCtx.mangleCXXDtorThunk(DD, GD.getDtorType(), TI, in maybeEmitThunk()
530 llvm::Type *ThunkVTableTy = CGM.getTypes().GetFunctionTypeForVTable(GD); in maybeEmitThunk()
531 llvm::Constant *Thunk = CGM.GetAddrOfThunk(Name, ThunkVTableTy, GD); in maybeEmitThunk()
543 : CGM.getTypes().arrangeGlobalDeclaration(GD); in maybeEmitThunk()
577 setThunkProperties(CGM, TI, ThunkFn, ForVTable, GD); in maybeEmitThunk()
588 CGM.SetLLVMFunctionAttributesForDefinition(GD.getDecl(), ThunkFn); in maybeEmitThunk()
615 CodeGenFunction(CGM).GenerateVarArgsThunk(ThunkFn, FnInfo, GD, TI); in maybeEmitThunk()
618 CodeGenFunction(CGM).generateThunk(ThunkFn, FnInfo, GD, TI, IsUnprototyped); in maybeEmitThunk()
621 setThunkProperties(CGM, TI, ThunkFn, ForVTable, GD); in maybeEmitThunk()
625 void CodeGenVTables::EmitThunks(GlobalDecl GD) { in EmitThunks() argument
627 cast<CXXMethodDecl>(GD.getDecl())->getCanonicalDecl(); in EmitThunks()
630 if (isa<CXXDestructorDecl>(MD) && GD.getDtorType() == Dtor_Base) in EmitThunks()
634 VTContext->getThunkInfo(GD); in EmitThunks()
640 maybeEmitThunk(GD, Thunk, /*ForVTable=*/false); in EmitThunks()
773 GlobalDecl GD = component.getGlobalDecl(); in addVTableComponent() local
779 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in addVTableComponent()
820 if (cast<CXXMethodDecl>(GD.getDecl())->isPureVirtual()) { in addVTableComponent()
827 } else if (cast<CXXMethodDecl>(GD.getDecl())->isDeleted()) { in addVTableComponent()
840 fnPtr = maybeEmitThunk(GD, thunkInfo, /*ForVTable=*/true); in addVTableComponent()
843 GD = GD.getWithDecl(thunkInfo.Method); in addVTableComponent()
848 llvm::Type *fnTy = CGM.getTypes().GetFunctionTypeForVTable(GD); in addVTableComponent()
849 fnPtr = CGM.GetAddrOfFunction(GD, fnTy, /*ForVTable=*/true); in addVTableComponent()
851 GD = getItaniumVTableContext().findOriginalMethod(GD); in addVTableComponent()
871 return builder.addSignedPointer(fnPtr, Schema, GD, QualType()); in addVTableComponent()