Tengo un código heredado que se compila con los conjuntos -02 y -03. Desde el archivo hombre GCC Me da la garantía de que:Indicadores de optimización múltiple de GCC
-O3 enciende todas las optimizaciones especificados por O2 y también activa las funciones -finline, -funswitch-bucles, -fpredictive-commoning, -fgcse- after-reload y -ftree-vectorize opciones.
Por lo tanto, a primera vista, parece probable que encender estas dos banderas sea igual que solo -O3. Sin embargo, eso me hizo pensar que lo correcto en ese caso como -O2 es probablemente la opción "más segura". Obviamente, es una simple cuestión compilar un código con todas las permutaciones y ver qué sucede en cada caso, pero me preguntaba si alguien sabe si existe una política específica que GCC tenga con respecto a la especificación de múltiples niveles de optimizaciones y, de ser así, qué es el razonamiento detrás de esto?