[PATCH] D99238: [DebugInfo] Enable the call site parameter feature by default

David Blaikie via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 2 11:12:11 PDT 2021


dblaikie added inline comments.


================
Comment at: clang/lib/Frontend/CompilerInvocation.cpp:1648
 
-  if (Opts.OptimizationLevel > 0 && Opts.hasReducedDebugInfo() &&
+  if (Opts.hasReducedDebugInfo() &&
       llvm::is_contained(DebugEntryValueArchs, T.getArch()))
----------------
alok wrote:
> alok wrote:
> > dblaikie wrote:
> > > probinson wrote:
> > > > I think we don't want this enabled by default at -O0.  It doesn't run any optimizations that should eliminate parameters, so this is going to increase debug info size for no real benefit to the debugging experience.
> > > +1 to @probinson here. That's generally been the thinking behind why this was only enabled when optimizations are enabled. (there's some minor tradeoff here: call site descriptions in unoptimized code can still be useful if they call into optimized code, so this is a bit heuristical - assuming that all code will be compiled with the same optimization level)
> > > 
> > > If flang is in a different situation and enables some optimizations at -O0 that make call site parameter descriptions beneficial even there, then maybe we'll need some different way to differentiate optimizations V no optimizations for the purpose of this feature.
> > Thanks Paul for the comment. I shall probably add an option to enable in such cases which should remain off by default, Flang driver can pass that to compiler to turn it on.
> Thanks David for your explanation and thoughts. Please also look at trigger to this https://reviews.llvm.org/D99160
> 
> It is needed in a Fortran case. I shall probably drop to enable it by default and add an option which by default is disabled and Fortran driver can pass that to make use of it.
Sounds like @djtodoro is suggesting in https://reviews.llvm.org/D99160#2666106 that the "Bug" to fix here is the presence of DW_OP_call_value at -O0, it seems that could be an issue for the existing/original use of call_site_parameter/call_value (in C++/clang) as it would be for flang - so the fix should probably not be flang-specific if the issue isn't flang-specific. Understanding why we produce DW_OP_call_values at -O0, whether we can/should avoid that, what it costs (how much larger the debug info gets by adding DW_TAG_call_sites at -O0) would be necessary to determine the right path forward here.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99238/new/

https://reviews.llvm.org/D99238



More information about the cfe-commits mailing list