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
>