Уровни оптимизации в LLVM и Clang

Я работаю над проектом, который я компилировал с LLVM 2.6 и внешним интерфейсом llvm -gcc. Я пытаюсь протестировать его компиляцию с помощью LLVM 3.1 и clang. Когда я это сделал, я получил следующее сообщение об ошибке -Уровень оптимизации O5 :

error: invalid value '5' in '-O5'

. Однако LLVM 2.6 и llvm -gcc отлично работали с флагом -O5. Я видел следующую документацию об уровнях оптимизации 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.

Итак, я пытаюсь выяснить, что в первую очередь делал -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

Также, если это имеет значение, я работаю в системе Linux (Ubuntu 10.04 )x86 _64.

10
задан Gabriel Southern 24 April 2012 в 02:26
поделиться