Estoy trabajando en un proyecto que había estado compilando con LLVM 2.6 y el front-end llvm-gcc. Estoy tratando de probar compilando con LLVM 3.1 y clang. Cuando hice esto me dieron el siguiente mensaje de error sobre -O5 nivel de optimización:Niveles de optimización en LLVM y Clang
error: invalid value '5' in '-O5'
Sin embargo, LLVM 2.6 y llvm-gcc han trabajado bien con la bandera -O5
. Vi la siguiente documentación acerca de los niveles de optimización Clang:
-O0 -O1 -O2 -Os -O3 -O4
Specify which optimization level to use. -O0 means "no optimization": this level compiles the
fastest and generates the most debuggable code. -O2 is a moderate level of optimization which
enables most optimizations. -Os is like -O2 with extra optimizations to reduce code size. -O3
is like -O2, except that it enables optimizations that take longer to perform or that may
generate larger code (in an attempt to make the program run faster). On supported platforms, -O4
enables link-time optimization; object files are stored in the LLVM bitcode file format and whole
program optimization is done at link time. -O1 is somewhere between -O0 and -O2.
Así que estoy tratando de averiguar lo que el -O5
en el Makefile estoy trabajando con estaba haciendo en primer lugar (I no escribió el Makefile). ¿Esto es algo que cambió y solía usarse con LLVM? O sigue siendo una característica útil y solo necesito activarlo de alguna otra manera.
También en caso de que sea útil el comando Estoy corriendo que está dando el error es básicamente:
/bin/clang -g -c -mcmodel=medium -fstrict-aliasing -Wstrict-aliasing -O5 -emit-llvm -fkeep-inline-functions -fno-stack-protector -c -o foo.bc foo.cpp
También en el caso Importa estoy corriendo en un sistema Linux x86_64 (10.04 Ubuntu).