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

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to