https://gcc.gnu.org/g:1a8585acd6bb9a09edcde3ca746f58fd421f39c4

commit 1a8585acd6bb9a09edcde3ca746f58fd421f39c4
Author: Sam James <s...@gentoo.org>
Date:   Tue Jul 23 15:06:10 2024 +0100

    doc: Document -O1 as the preferred level for large machine-generated code
    
    At -O1, the intention is that we compile things in a "reasonable" amount
    of time (ditto memory use). In particular, we try to especially avoid
    optimizations which scale poorly on pathological cases, as is the case
    for large machine-generated code.
    
    Recommend -O1 for large machine-generated code, as has been informally
    done on bugs for a while now.
    
    This applies (broadly speaking) for both large machine-generated functions
    but also to a lesser extent repetitive small-but-still-not-tiny functions
    from a generator program.
    
    gcc/ChangeLog:
            PR middle-end/114855
            * doc/invoke.texi (Optimize options): Mention machine-generated
            code for -O1.

Diff:
---
 gcc/doc/invoke.texi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index e0a641213ae4..9fb0925ed292 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -12560,6 +12560,11 @@ With @option{-O}, the compiler tries to reduce code 
size and execution
 time, without performing any optimizations that take a great deal of
 compilation time.
 
+@option{-O} is the recommended optimization level for large machine-generated
+code as a sensible balance between time taken to compile and memory use:
+higher optimization levels perform optimizations with greater algorithmic
+complexity than at @option{-O}.
+
 @c Note that in addition to the default_options_table list in opts.cc,
 @c several optimization flags default to true but control optimization
 @c passes that are explicitly disabled at -O0.

Reply via email to