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}
+this enables @option{-fvar-tracking-assignments} and @option{-fvar-tracking}
+which handles debug information in the prologue and epilogue of functions
+better than @option{-O0}.
Like @option{-O0}, @option{-Og} completely disables a number of
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:
@gccoptlist{-fbranch-count-reg -fdelayed-branch
-fdse -fif-conversion -fif-conversion2
--
2.43.0