Lines Matching refs:GD
35 llvm::Constant *CodeGenModule::GetAddrOfThunk(GlobalDecl GD, in GetAddrOfThunk() argument
37 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in GetAddrOfThunk()
43 getCXXABI().getMangleContext().mangleCXXDtorThunk(DD, GD.getDtorType(), in GetAddrOfThunk()
48 llvm::Type *Ty = getTypes().GetFunctionTypeForVTable(GD); in GetAddrOfThunk()
49 return GetOrCreateLLVMFunction(Name, Ty, GD, /*ForVTable=*/true, in GetAddrOfThunk()
60 GlobalDecl GD) { in setThunkProperties() argument
61 CGM.setFunctionLinkage(GD, ThunkFn); in setThunkProperties()
62 CGM.getCXXABI().setThunkLinkage(ThunkFn, ForVTable, GD, in setThunkProperties()
66 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in setThunkProperties()
146 GlobalDecl GD, const ThunkInfo &Thunk) { in GenerateVarArgsThunk() argument
147 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in GenerateVarArgsThunk()
154 llvm::Value *Callee = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true); in GenerateVarArgsThunk()
210 void CodeGenFunction::StartThunk(llvm::Function *Fn, GlobalDecl GD, in StartThunk() argument
213 CurGD = GD; in StartThunk()
217 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in StartThunk()
220 QualType ResultType = CGM.getCXXABI().HasThisReturn(GD) in StartThunk()
222 : CGM.getCXXABI().hasMostDerivedReturn(GD) in StartThunk()
401 GlobalDecl GD, const ThunkInfo &Thunk) { in generateThunk() argument
402 StartThunk(Fn, GD, FnInfo); in generateThunk()
406 CGM.getTypes().GetFunctionType(CGM.getTypes().arrangeGlobalDeclaration(GD)); in generateThunk()
407 llvm::Value *Callee = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true); in generateThunk()
413 void CodeGenVTables::emitThunk(GlobalDecl GD, const ThunkInfo &Thunk, in emitThunk() argument
415 const CGFunctionInfo &FnInfo = CGM.getTypes().arrangeGlobalDeclaration(GD); in emitThunk()
418 llvm::Constant *C = CGM.GetAddrOfThunk(GD, Thunk); in emitThunk()
432 CGM.getTypes().GetFunctionTypeForVTable(GD)) { in emitThunk()
441 Entry = cast<llvm::GlobalValue>(CGM.GetAddrOfThunk(GD, Thunk)); in emitThunk()
464 setThunkProperties(CGM, Thunk, ThunkFn, ForVTable, GD); in emitThunk()
468 CGM.SetLLVMFunctionAttributesForDefinition(GD.getDecl(), ThunkFn); in emitThunk()
479 CodeGenFunction(CGM).GenerateVarArgsThunk(ThunkFn, FnInfo, GD, Thunk); in emitThunk()
482 CodeGenFunction(CGM).generateThunk(ThunkFn, FnInfo, GD, Thunk); in emitThunk()
485 setThunkProperties(CGM, Thunk, ThunkFn, ForVTable, GD); in emitThunk()
488 void CodeGenVTables::maybeEmitThunkForVTable(GlobalDecl GD, in maybeEmitThunkForVTable() argument
499 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in maybeEmitThunkForVTable()
504 emitThunk(GD, Thunk, /*ForVTable=*/true); in maybeEmitThunkForVTable()
507 void CodeGenVTables::EmitThunks(GlobalDecl GD) in EmitThunks() argument
510 cast<CXXMethodDecl>(GD.getDecl())->getCanonicalDecl(); in EmitThunks()
513 if (isa<CXXDestructorDecl>(MD) && GD.getDtorType() == Dtor_Base) in EmitThunks()
517 VTContext->getThunkInfo(GD); in EmitThunks()
523 emitThunk(GD, Thunk, /*ForVTable=*/false); in EmitThunks()
568 GlobalDecl GD; in CreateVTableInitializer() local
575 GD = Component.getFunctionDecl(); in CreateVTableInitializer()
578 GD = GlobalDecl(Component.getDestructorDecl(), Dtor_Complete); in CreateVTableInitializer()
581 GD = GlobalDecl(Component.getDestructorDecl(), Dtor_Deleting); in CreateVTableInitializer()
589 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl()); in CreateVTableInitializer()
603 if (cast<CXXMethodDecl>(GD.getDecl())->isPure()) { in CreateVTableInitializer()
614 } else if (cast<CXXMethodDecl>(GD.getDecl())->isDeleted()) { in CreateVTableInitializer()
631 maybeEmitThunkForVTable(GD, Thunk); in CreateVTableInitializer()
632 Init = CGM.GetAddrOfThunk(GD, Thunk); in CreateVTableInitializer()
636 llvm::Type *Ty = CGM.getTypes().GetFunctionTypeForVTable(GD); in CreateVTableInitializer()
638 Init = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true); in CreateVTableInitializer()