2011-04-05 11 views
15

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?

Respuesta

29

Desde el man page:

Si utiliza varias opciones -O, con o sin números de nivel, la última de ellas es la que es eficaz.

Cuestiones relacionadas