On Mon, 28 Apr 2025, Sam James wrote: > Richard Biener <rguent...@suse.de> writes: > > > On Mon, 28 Apr 2025, Alexander Monakov wrote: > > > >> > >> On Mon, 28 Apr 2025, Richard Biener wrote: > >> > >> > The following rewords the documentation for -Og which over-promises > >> > the ability to debug the generated code. While -Og enables > >> > var-tracking and thus improves debugging in some areas the experience > >> > is usually worse than -O0 for standard C code. > >> > > >> > Any other comments/clarifications? OK? > >> > > >> > Thanks, > >> > Richard. > >> > > >> > PR debug/78685 > >> > * doc/invoke.texi (-Og): Reword. > >> > --- > >> > gcc/doc/invoke.texi | 14 ++++++++------ > >> > 1 file changed, 8 insertions(+), 6 deletions(-) > >> > > >> > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > >> > index 7fcf7dee497..7945bacb1ae 100644 > >> > --- a/gcc/doc/invoke.texi > >> > +++ b/gcc/doc/invoke.texi > >> > @@ -12888,17 +12888,19 @@ It turns off @option{-fsemantic-interposition}. > >> > > >> > @opindex Og > >> > @item -Og > >> > -Optimize debugging experience. @option{-Og} should be the optimization > >> > +Optimize while keeping in mind debugging experience. > >> > +@option{-Og} should be the optimization > >> > level of choice for the standard edit-compile-debug cycle, offering > >> > -a reasonable level of optimization while maintaining fast compilation > >> > -and a good debugging experience. It is a better choice than > >> > @option{-O0} > >> > -for producing debuggable code because some compiler passes > >> > -that collect debug information are disabled at @option{-O0}. > >> > +a reasonable blend of optimization, fast compilation and debugging > >> > experience > >> > +especially for code with a high abstraction penalty. Ontop of > >> > @option{-O0} > >> > >> Typo: "On top" (missing space), but I wonder if "On top of" can be changed > >> to > >> "In contrast to", I assume we don't want to say that -Og is -O0 plus > >> something. > > > > Agreed. We don't want to suggest that -O0 -fvar-tracking is a thing. > > > >> > +this enables @option{-fvar-tracking-assignments} and > >> > @option{-fvar-tracking} > >> > +which handles debug information in the prologue and epilogue of > >> > functions > >> > >> "which handle" (plural)? > > > > Fixed. > > > >> > +better than @option{-O0}. > >> > > >> > Like @option{-O0}, @option{-Og} completely disables a number of > >> > >> For me, "completely skips" would be clearer here than "… disables …". > > > > OK. > > > >> > optimization passes so that individual options controlling them have > >> > no effect. Otherwise @option{-Og} enables all @option{-O1} > >> > -optimization flags except for those that may interfere with debugging: > >> > +optimization flags except for those known to greatly interfere with > >> > debugging: > > > > New version below. > > > > Richard. > > > > LGTM with some grammar nits: > > > > > From edfa25350c949acfd50954a5178cec8722b32444 Mon Sep 17 00:00:00 2001 > > From: Richard Biener <rguent...@suse.de> > > Date: Mon, 28 Apr 2025 13:31:16 +0200 > > Subject: [PATCH] debug/78685 - reword -Og documentation > > To: gcc-patches@gcc.gnu.org > > > > The following rewords the documentation for -Og which over-promises > > the ability to debug the generated code. While -Og enables > > var-tracking and thus improves debugging in some areas the experience > > is usually worse than -O0 for standard C code. > > > > PR debug/78685 > > * doc/invoke.texi (-Og): Reword. > > --- > > gcc/doc/invoke.texi | 16 +++++++++------- > > 1 file changed, 9 insertions(+), 7 deletions(-) > > > > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > > index 7fcf7dee497..6f2d94fc2a0 100644 > > --- a/gcc/doc/invoke.texi > > +++ b/gcc/doc/invoke.texi > > @@ -12888,17 +12888,19 @@ It turns off @option{-fsemantic-interposition}. > > > > @opindex Og > > @item -Og > > -Optimize debugging experience. @option{-Og} should be the optimization > > +Optimize while keeping in mind debugging experience. > > +@option{-Og} should be the optimization > > level of choice for the standard edit-compile-debug cycle, offering > > -a reasonable level of optimization while maintaining fast compilation > > -and a good debugging experience. It is a better choice than @option{-O0} > > -for producing debuggable code because some compiler passes > > -that collect debug information are disabled at @option{-O0}. > > +a reasonable blend of optimization, fast compilation and debugging > ^^^^ > , > > experience > > +especially for code with a high abstraction penalty. In contrast to > > +@option{-O0} this enables @option{-fvar-tracking-assignments} and > ^^^^ > , >
Fixed. > I think the new version is far more honest. It's been bothering me for a > bit but couldn't figure out the right phrasing to edit. Thanks. Jakub, are the var-tracking -O0 vs. -On bits accurate? Richard. -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)