Lines Matching refs:Thunk
36 const ThunkInfo &Thunk) { in GetAddrOfThunk() argument
44 Thunk.This, Out); in GetAddrOfThunk()
46 getCXXABI().getMangleContext().mangleThunk(MD, Thunk, Out); in GetAddrOfThunk()
55 const ThunkInfo &Thunk, llvm::Function *Fn) { in setThunkVisibility() argument
59 static void setThunkProperties(CodeGenModule &CGM, const ThunkInfo &Thunk, in setThunkProperties() argument
64 !Thunk.Return.isEmpty()); in setThunkProperties()
68 setThunkVisibility(CGM, MD, Thunk, ThunkFn); in setThunkProperties()
86 const ThunkInfo &Thunk) { in PerformReturnAdjustment() argument
107 Thunk.Return); in PerformReturnAdjustment()
144 GlobalDecl GD, const ThunkInfo &Thunk) { in GenerateVarArgsThunk() argument
185 CGM.getCXXABI().performThisAdjustment(*this, ThisPtr, Thunk.This); in GenerateVarArgsThunk()
188 if (!Thunk.Return.isEmpty()) { in GenerateVarArgsThunk()
196 RV = PerformReturnAdjustment(*this, ResultType, RV, Thunk); in GenerateVarArgsThunk()
242 const ThunkInfo *Thunk) { in EmitCallAndReturnForThunk() argument
248 llvm::Value *AdjustedThisPtr = Thunk ? CGM.getCXXABI().performThisAdjustment( in EmitCallAndReturnForThunk()
249 *this, LoadCXXThis(), Thunk->This) in EmitCallAndReturnForThunk()
256 if (Thunk && !Thunk->Return.isEmpty()) { in EmitCallAndReturnForThunk()
313 if (Thunk && !Thunk->Return.isEmpty()) in EmitCallAndReturnForThunk()
314 RV = PerformReturnAdjustment(*this, ResultType, RV, *Thunk); in EmitCallAndReturnForThunk()
384 GlobalDecl GD, const ThunkInfo &Thunk) { in generateThunk() argument
393 EmitCallAndReturnForThunk(Callee, &Thunk); in generateThunk()
396 void CodeGenVTables::emitThunk(GlobalDecl GD, const ThunkInfo &Thunk, in emitThunk() argument
401 llvm::Constant *C = CGM.GetAddrOfThunk(GD, Thunk); in emitThunk()
424 Entry = cast<llvm::GlobalValue>(CGM.GetAddrOfThunk(GD, Thunk)); in emitThunk()
447 setThunkProperties(CGM, Thunk, ThunkFn, ForVTable, GD); in emitThunk()
462 CodeGenFunction(CGM).GenerateVarArgsThunk(ThunkFn, FnInfo, GD, Thunk); in emitThunk()
465 CodeGenFunction(CGM).generateThunk(ThunkFn, FnInfo, GD, Thunk); in emitThunk()
468 setThunkProperties(CGM, Thunk, ThunkFn, ForVTable, GD); in emitThunk()
472 const ThunkInfo &Thunk) { in maybeEmitThunkForVTable() argument
487 emitThunk(GD, Thunk, /*ForVTable=*/true); in maybeEmitThunkForVTable()
594 const ThunkInfo &Thunk = VTableThunks[NextVTableThunkIndex].second; in CreateVTableInitializer() local
596 maybeEmitThunkForVTable(GD, Thunk); in CreateVTableInitializer()
597 Init = CGM.GetAddrOfThunk(GD, Thunk); in CreateVTableInitializer()