Я работаю над проектом, который я компилировал с LLVM 2.6 и интерфейсом llvm-gcc. Я пытаюсь проверить его компиляцию с помощью LLVM 3.1 и clang. Когда я сделал это, я получил следующее сообщение об ошибке о -O5 уровне оптимизации:Уровни оптимизации в LLVM и Clang
error: invalid value '5' in '-O5'
Однако, LLVM 2.6 и LLVM-GCC работали отлично с -O5
флагом. Я увидел следующую документацию об уровнях оптимизации лязга:
-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.
Так что я пытаюсь выяснить, что -O5
в Makefile я работаю делает в первую очередь (я не писать Makefile). Это что-то, что изменилось и использовалось для использования с LLVM? Или это еще полезная функция, и мне просто нужно активировать ее каким-то другим способом.
Кроме того, в случае, если это полезно команда я бегу, что дает ошибку в основном:
/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
Кроме того, в случае, это важно, я бегу в системе x86_64 Linux (Ubuntu 10.04).