Lines Matching refs:GD
35 GlobalDecl GD) { in GetAddrOfThunk() argument
36 return GetOrCreateLLVMFunction(Name, FnTy, GD, /*ForVTable=*/true, in GetAddrOfThunk()
42 GlobalDecl GD) { in setThunkProperties() argument
43 CGM.setFunctionLinkage(GD, ThunkFn); in setThunkProperties()
44 CGM.getCXXABI().setThunkLinkage(ThunkFn, ForVTable, GD, in setThunkProperties()
48 CGM.setGVProperties(ThunkFn, GD); in setThunkProperties()
159 GlobalDecl GD, const ThunkInfo &Thunk) { in GenerateVarArgsThunk() argument
160 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in GenerateVarArgsThunk()
167 llvm::Value *Callee = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true); in GenerateVarArgsThunk()
225 void CodeGenFunction::StartThunk(llvm::Function *Fn, GlobalDecl GD, in StartThunk() argument
229 CurGD = GD; in StartThunk()
233 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in StartThunk()
239 else if (CGM.getCXXABI().HasThisReturn(GD)) in StartThunk()
241 else if (CGM.getCXXABI().hasMostDerivedReturn(GD)) in StartThunk()
377 void CodeGenFunction::EmitMustTailThunk(GlobalDecl GD, in EmitMustTailThunk() argument
414 CGM.ConstructAttributeList(CalleePtr->getName(), *CurFnInfo, GD, Attrs, in EmitMustTailThunk()
431 const CGFunctionInfo &FnInfo, GlobalDecl GD, in generateThunk() argument
434 StartThunk(Fn, GD, FnInfo, IsUnprototyped); in generateThunk()
446 llvm::Constant *Callee = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true); in generateThunk()
474 llvm::Constant *CodeGenVTables::maybeEmitThunk(GlobalDecl GD, in maybeEmitThunk() argument
477 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in maybeEmitThunk()
486 MCtx.mangleCXXDtorThunk(DD, GD.getDtorType(), TI.This, Out); in maybeEmitThunk()
489 llvm::Type *ThunkVTableTy = CGM.getTypes().GetFunctionTypeForVTable(GD); in maybeEmitThunk()
490 llvm::Constant *Thunk = CGM.GetAddrOfThunk(Name, ThunkVTableTy, GD); in maybeEmitThunk()
502 : CGM.getTypes().arrangeGlobalDeclaration(GD); in maybeEmitThunk()
539 setThunkProperties(CGM, TI, ThunkFn, ForVTable, GD); in maybeEmitThunk()
550 CGM.SetLLVMFunctionAttributesForDefinition(GD.getDecl(), ThunkFn); in maybeEmitThunk()
560 ThunkFn = CodeGenFunction(CGM).GenerateVarArgsThunk(ThunkFn, FnInfo, GD, in maybeEmitThunk()
564 CodeGenFunction(CGM).generateThunk(ThunkFn, FnInfo, GD, TI, IsUnprototyped); in maybeEmitThunk()
567 setThunkProperties(CGM, TI, ThunkFn, ForVTable, GD); in maybeEmitThunk()
571 void CodeGenVTables::EmitThunks(GlobalDecl GD) { in EmitThunks() argument
573 cast<CXXMethodDecl>(GD.getDecl())->getCanonicalDecl(); in EmitThunks()
576 if (isa<CXXDestructorDecl>(MD) && GD.getDtorType() == Dtor_Base) in EmitThunks()
580 VTContext->getThunkInfo(GD); in EmitThunks()
586 maybeEmitThunk(GD, Thunk, /*ForVTable=*/false); in EmitThunks()
616 GlobalDecl GD; in addVTableComponent() local
623 GD = component.getFunctionDecl(); in addVTableComponent()
626 GD = GlobalDecl(component.getDestructorDecl(), Dtor_Complete); in addVTableComponent()
629 GD = GlobalDecl(component.getDestructorDecl(), Dtor_Deleting); in addVTableComponent()
637 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in addVTableComponent()
661 if (cast<CXXMethodDecl>(GD.getDecl())->isPure()) { in addVTableComponent()
668 } else if (cast<CXXMethodDecl>(GD.getDecl())->isDeleted()) { in addVTableComponent()
680 fnPtr = maybeEmitThunk(GD, thunkInfo, /*ForVTable=*/true); in addVTableComponent()
684 llvm::Type *fnTy = CGM.getTypes().GetFunctionTypeForVTable(GD); in addVTableComponent()
685 fnPtr = CGM.GetAddrOfFunction(GD, fnTy, /*ForVTable=*/true); in addVTableComponent()