Niveaux d'optimisation dans LLVM et Clang

Je suis en train de travailler sur un projet que j'avais été la compilation avec LLVM 2.6 et la llvm-gcc avant la fin. Je suis en train de tester, de le compiler avec la VERSION 3.1 et clang. Quand j'ai fait ce que j'ai obtenu le message d'erreur suivant sur -O5 niveau d'optimisation:

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

Cependant, LLVM 2.6 et llvm-gcc ont travaillé très bien avec le -O5 drapeau. J'ai vu la suite de la documentation sur le Bruit niveaux d'optimisation:

-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.

Donc j'essaye de comprendre ce que le -O5 dans le Makefile, je travaille avec à la première place (je n'ai pas écrit le Makefile). Est-ce quelque chose que modifié et utilisé pour être utilisé avec LLVM? Ou est-il encore utile, et j'ai juste besoin de l'activer d'une autre façon.

Également dans le cas où il est utile de la commande, je suis en cours d'exécution qui est ce qui donne l'erreur est fondamentalement:

/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

Également en cas de questions, je suis en cours d'exécution sur un Linux (Ubuntu 10.04) x86_64 système.

source d'informationauteur Gabriel Southern