/Og (optimizaciones globales)
Proporciona optimizaciones locales y globales, asignación automática de registros y optimización de bucles. Obsoleto.
/Og
Comentarios
Están disponibles las siguientes optimizaciones:
Eliminación de subexpresiones comunes locales y globales
En esta optimización, el valor de una subexpresión común se calcula una sola vez. En el ejemplo siguiente, si los valores de b y c no varían entre las tres expresiones, el compilador puede asignar el cálculo de b + c a una variable temporal y sustituirla por b + c:
a = b + c; d = b + c; e = b + c;
Para la optimización de subexpresiones comunes locales, el compilador examina la presencia de subexpresiones comunes en secciones breves del código. Para la optimización de subexpresiones comunes globales, el compilador busca subexpresiones comunes en funciones completas.
Asignación automática de registros
Esta optimización permite al compilador almacenar variables y subexpresiones de uso frecuente en registros; se omite la palabra clave register.
Optimización de bucles
Esta optimización quita las subexpresiones invariables del cuerpo de un bucle. Un bucle óptimo sólo contiene expresiones cuyos valores varían en cada ejecución del bucle. En el ejemplo siguiente, la expresión x + y no varía en el cuerpo del bucle:
i = -100; while( i < 0 ) { i += x + y; }
Tras la optimización, x + y se calcula una sola vez y no en cada ejecución del bucle:
i = -100; t = x + y; while( i < 0 ) { i += t; }
La optimización de bucles es mucho más eficaz cuando el compilador puede suponer que no existe efecto escalonado (aliasing), el cual se establece con __restrict, noalias o restrict.
Nota
Puede habilitar o deshabilitar la optimización global función por función mediante la directiva pragma optimize con la opción g.
La opción /Og también habilita la optimización del valor devuelto con nombre, que elimina el constructor y el destructor de copias de un valor devuelto basado en la pila. Para obtener más información, vea /O1, /O2 (Minimizar tamaño, maximizar velocidad).
Para obtener información relacionada, vea Generar funciones intrínsecas (/Oi) y Optimización completa (/Ox).
/Og está desusado; use /O1 u /O2. Para obtener más información, vea Deprecated Compiler Options.
Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio
Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para obtener información detallada, vea Cómo: Abrir páginas de propiedades del proyecto.
Haga clic en la carpeta C/C++.
Haga clic en la página de propiedades Línea de comandos.
Escriba la opción del compilador en el cuadro Opciones adicionales.
Para establecer esta opción del compilador mediante programación
- Vea AdditionalOptions.