Lines Matching defs:Thunk
35 const ThunkInfo &Thunk) {
43 Thunk.This, Out);
45 getCXXABI().getMangleContext().mangleThunk(MD, Thunk, Out);
100 const ThunkInfo &Thunk, llvm::Function *Fn) {
106 // If the thunk has weak/linkonce linkage, but the function must be
158 const ThunkInfo &Thunk) {
179 Thunk.Return.NonVirtual,
180 Thunk.Return.VBaseOffsetOffset,
212 // no-op thunk for the regular definition) call va_start/va_end.
218 GlobalDecl GD, const ThunkInfo &Thunk) {
229 // Clone to thunk.
264 Thunk.This.NonVirtual,
265 Thunk.This.VCallOffsetOffset,
269 if (!Thunk.Return.isEmpty()) {
277 RV = PerformReturnAdjustment(*this, ResultType, RV, Thunk);
287 GlobalDecl GD, const ThunkInfo &Thunk) {
322 Thunk.This.NonVirtual,
323 Thunk.This.VCallOffsetOffset,
370 if (!Thunk.Return.isEmpty())
371 RV = PerformReturnAdjustment(*this, ResultType, RV, Thunk);
385 setThunkVisibility(CGM, MD, Thunk, Fn);
388 void CodeGenVTables::EmitThunk(GlobalDecl GD, const ThunkInfo &Thunk,
394 llvm::Constant *Entry = CGM.GetAddrOfThunk(GD, Thunk);
412 // Remove the name from the old thunk function and get a new thunk.
414 Entry = CGM.GetAddrOfThunk(GD, Thunk);
416 // If needed, replace the old thunk with a bitcast.
423 // Remove the old thunk.
431 // There is already a thunk emitted for this function, do nothing.
449 // expensive/sucky at the moment, so don't generate the thunk unless
453 CodeGenFunction(CGM).GenerateVarArgsThunk(ThunkFn, FnInfo, GD, Thunk);
455 // Normal thunk body generation.
456 CodeGenFunction(CGM).GenerateThunk(ThunkFn, FnInfo, GD, Thunk);
464 const ThunkInfo &Thunk) {
475 EmitThunk(GD, Thunk, /*UseAvailableExternallyLinkage=*/true);
584 // Check if we should use a thunk.
587 const ThunkInfo &Thunk = VTableThunks[NextVTableThunkIndex].second;
589 MaybeEmitThunkAvailableExternally(GD, Thunk);
590 Init = CGM.GetAddrOfThunk(GD, Thunk);