Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:GD

35 llvm::Constant *CodeGenModule::GetAddrOfThunk(GlobalDecl GD, 
37 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
43 getCXXABI().getMangleContext().mangleCXXDtorThunk(DD, GD.getDtorType(),
48 llvm::Type *Ty = getTypes().GetFunctionTypeForVTable(GD);
49 return GetOrCreateLLVMFunction(Name, Ty, GD, /*ForVTable=*/true,
60 GlobalDecl GD) {
61 CGM.setFunctionLinkage(GD, ThunkFn);
62 CGM.getCXXABI().setThunkLinkage(ThunkFn, ForVTable, GD,
66 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
146 GlobalDecl GD, const ThunkInfo &Thunk) {
147 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
154 llvm::Value *Callee = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true);
208 void CodeGenFunction::StartThunk(llvm::Function *Fn, GlobalDecl GD,
211 CurGD = GD;
215 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
218 QualType ResultType = CGM.getCXXABI().HasThisReturn(GD)
220 : CGM.getCXXABI().hasMostDerivedReturn(GD)
398 GlobalDecl GD, const ThunkInfo &Thunk) {
399 StartThunk(Fn, GD, FnInfo);
403 CGM.getTypes().GetFunctionType(CGM.getTypes().arrangeGlobalDeclaration(GD));
404 llvm::Value *Callee = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true);
410 GD, const ThunkInfo &Thunk,
412 const CGFunctionInfo &FnInfo = CGM.getTypes().arrangeGlobalDeclaration(GD);
415 llvm::Constant *C = CGM.GetAddrOfThunk(GD, Thunk);
429 CGM.getTypes().GetFunctionTypeForVTable(GD)) {
438 Entry = cast<llvm::GlobalValue>(CGM.GetAddrOfThunk(GD, Thunk));
461 setThunkProperties(CGM, Thunk, ThunkFn, ForVTable, GD);
465 CGM.SetLLVMFunctionAttributesForDefinition(GD.getDecl(), ThunkFn);
476 CodeGenFunction(CGM).GenerateVarArgsThunk(ThunkFn, FnInfo, GD, Thunk);
479 CodeGenFunction(CGM).generateThunk(ThunkFn, FnInfo, GD, Thunk);
482 setThunkProperties(CGM, Thunk, ThunkFn, ForVTable, GD);
485 void CodeGenVTables::maybeEmitThunkForVTable(GlobalDecl GD,
496 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
501 emitThunk(GD, Thunk, /*ForVTable=*/true);
504 void CodeGenVTables::EmitThunks(GlobalDecl GD)
507 cast<CXXMethodDecl>(GD.getDecl())->getCanonicalDecl();
510 if (isa<CXXDestructorDecl>(MD) && GD.getDtorType() == Dtor_Base)
514 VTContext->getThunkInfo(GD);
520 emitThunk(GD, Thunk, /*ForVTable=*/false);
565 GlobalDecl GD;
572 GD = Component.getFunctionDecl();
575 GD = GlobalDecl(Component.getDestructorDecl(), Dtor_Complete);
578 GD = GlobalDecl(Component.getDestructorDecl(), Dtor_Deleting);
586 const CXXMethodDecl *MD = cast<CXXMethodDecl>(GD.getDecl());
600 if (cast<CXXMethodDecl>(GD.getDecl())->isPure()) {
613 } else if (cast<CXXMethodDecl>(GD.getDecl())->isDeleted()) {
632 maybeEmitThunkForVTable(GD, Thunk);
633 Init = CGM.GetAddrOfThunk(GD, Thunk);
637 llvm::Type *Ty = CGM.getTypes().GetFunctionTypeForVTable(GD);
639 Init = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true);