[clang] [clang][DebugInfo] Attach `DISubprogram` to additional call variants (PR #166202)
J. Ryan Stinnett via cfe-commits
cfe-commits at lists.llvm.org
Fri Nov 7 06:51:31 PST 2025
================
@@ -6277,6 +6277,21 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo,
pushDestroy(QualType::DK_nontrivial_c_struct, Ret.getAggregateAddress(),
RetTy);
+ if (CalleeDecl) {
+ // Generate function declaration DISuprogram in order to be used
+ // in debug info about call sites.
+ if (CGDebugInfo *DI = getDebugInfo()) {
+ CodeGenFunction CalleeCGF(CGM);
----------------
jryans wrote:
Here's a new round of compile time [results](http://llvm-compile-time-tracker.com/compare.php?from=34a34888152388c91dd66c10eefd600b3200e779&to=15cfbe5ae7d4ff4a48a648a9f5fa54404d5b3846&stat=instructions%3Au) after lifting up the call site emission conditions check.
We're now doing _less_ work on average for many O0 debug runs since we're checking whether to emit earlier than the previous version did. The O3 debug run continues to show a slight increase above baseline, but that's expected since there's a bit more call site emission work happening in optimised debug runs.
Please take a look and let me know if this round looks good to you as well.
https://github.com/llvm/llvm-project/pull/166202
More information about the cfe-commits
mailing list