Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:Thunk

36                                               const ThunkInfo &Thunk) {
44 Thunk.This, Out);
46 getCXXABI().getMangleContext().mangleThunk(MD, Thunk, Out);
55 const ThunkInfo &Thunk, llvm::Function *Fn) {
71 const ThunkInfo &Thunk) {
92 Thunk.Return);
123 // no-op thunk for the regular definition) call va_start/va_end.
129 GlobalDecl GD, const ThunkInfo &Thunk) {
140 // Clone to thunk.
174 CGM.getCXXABI().performThisAdjustment(*this, ThisPtr, Thunk.This);
177 if (!Thunk.Return.isEmpty()) {
185 RV = PerformReturnAdjustment(*this, ResultType, RV, Thunk);
229 const ThunkInfo *Thunk) {
231 "Please use a new CGF for this thunk");
235 llvm::Value *AdjustedThisPtr = Thunk ? CGM.getCXXABI().performThisAdjustment(
236 *this, LoadCXXThis(), Thunk->This)
285 if (Thunk && !Thunk->Return.isEmpty())
286 RV = PerformReturnAdjustment(*this, ResultType, RV, *Thunk);
300 GlobalDecl GD, const ThunkInfo &Thunk) {
309 EmitCallAndReturnForThunk(GD, Callee, &Thunk);
316 setThunkVisibility(CGM, MD, Thunk, Fn);
319 void CodeGenVTables::emitThunk(GlobalDecl GD, const ThunkInfo &Thunk,
324 llvm::Constant *C = CGM.GetAddrOfThunk(GD, Thunk);
345 // Remove the name from the old thunk function and get a new thunk.
347 Entry = cast<llvm::GlobalValue>(CGM.GetAddrOfThunk(GD, Thunk));
349 // If needed, replace the old thunk with a bitcast.
356 // Remove the old thunk.
366 // There is already a thunk emitted for this function, do nothing.
380 // expensive/sucky at the moment, so don't generate the thunk unless
384 CodeGenFunction(CGM).GenerateVarArgsThunk(ThunkFn, FnInfo, GD, Thunk);
386 !Thunk.Return.isEmpty());
389 // Normal thunk body generation.
390 CodeGenFunction(CGM).GenerateThunk(ThunkFn, FnInfo, GD, Thunk);
392 !Thunk.Return.isEmpty());
397 const ThunkInfo &Thunk) {
399 // the thunk. However, we can allow inlining of thunks if we emit them with
412 emitThunk(GD, Thunk, /*ForVTable=*/true);
516 // Check if we should use a thunk.
519 const ThunkInfo &Thunk = VTableThunks[NextVTableThunkIndex].second;
521 maybeEmitThunkForVTable(GD, Thunk);
522 Init = CGM.GetAddrOfThunk(GD, Thunk);