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. > +this enables @option{-fvar-tracking-assignments} and @option{-fvar-tracking} > +which handles debug information in the prologue and epilogue of functions "which handle" (plural)? > +better than @option{-O0}. > > Like @option{-O0}, @option{-Og} completely disables a number of For me, "completely skips" would be clearer here than "… disables …". > 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: Alexander > > @gccoptlist{-fbranch-count-reg -fdelayed-branch > -fdse -fif-conversion -fif-conversion2 >