Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:Thunk

42                                               const ThunkInfo &Thunk) {
50 Thunk.This, Out);
52 getCXXABI().getMangleContext().mangleThunk(MD, Thunk, Out);
107 const ThunkInfo &Thunk, llvm::Function *Fn) {
113 // If the thunk has weak/linkonce linkage, but the function must be
165 const ThunkInfo &Thunk) {
186 Thunk.Return.NonVirtual,
187 Thunk.Return.VBaseOffsetOffset,
219 // no-op thunk for the regular definition) call va_start/va_end.
225 GlobalDecl GD, const ThunkInfo &Thunk) {
236 // Clone to thunk.
271 Thunk.This.NonVirtual,
272 Thunk.This.VCallOffsetOffset,
276 if (!Thunk.Return.isEmpty()) {
284 RV = PerformReturnAdjustment(*this, ResultType, RV, Thunk);
294 GlobalDecl GD, const ThunkInfo &Thunk) {
330 Thunk.This.NonVirtual,
331 Thunk.This.VCallOffsetOffset,
378 if (!Thunk.Return.isEmpty())
379 RV = PerformReturnAdjustment(*this, ResultType, RV, Thunk);
393 setThunkVisibility(CGM, MD, Thunk, Fn);
396 void CodeGenVTables::EmitThunk(GlobalDecl GD, const ThunkInfo &Thunk,
407 llvm::Constant *Entry = CGM.GetAddrOfThunk(GD, Thunk);
425 // Remove the name from the old thunk function and get a new thunk.
427 Entry = CGM.GetAddrOfThunk(GD, Thunk);
429 // If needed, replace the old thunk with a bitcast.
436 // Remove the old thunk.
444 // There is already a thunk emitted for this function, do nothing.
462 // expensive/sucky at the moment, so don't generate the thunk unless
466 CodeGenFunction(CGM).GenerateVarArgsThunk(ThunkFn, FnInfo, GD, Thunk);
468 // Normal thunk body generation.
469 CodeGenFunction(CGM).GenerateThunk(ThunkFn, FnInfo, GD, Thunk);
477 const ThunkInfo &Thunk) {
488 EmitThunk(GD, Thunk, /*UseAvailableExternallyLinkage=*/true);
603 // Check if we should use a thunk.
606 const ThunkInfo &Thunk = VTableThunks[NextVTableThunkIndex].second;
608 MaybeEmitThunkAvailableExternally(GD, Thunk);
609 Init = CGM.GetAddrOfThunk(GD, Thunk);