C'est l'option -O qui permet de gérer l'optimisation d'un code. À sa suite, il est possible d'indiquer un niveau d'optimisation (2, 3, 4 ou 5), sachant que 2 est celui activé s'il n'est pas fourni (-O équivalent à -O2).
L'option -qnooptimize (qui est celle par défaut) permet d'inhiber l'optimisation faite par le compilateur.
À partir du niveau 3 il y a des risques de modification de la sémantique du programme ; soyez donc très vigilant quant aux résultats de vos calculs.
Par exemple : (2.*3.1)*4.2 peut être interprété comme 2.*(3.1*4.2).
On peut tout de même, dans de tels cas, interdir toute modification sémantique en positionnant l'option -qstrict.
Par exemple :
vargas : cc -O3 -qstrict source.c vargas : xlC -O3 -qstrict source.C
Une documentation IBM spécifique pour l'optimisation sur Power6 est disponible en anglais (.pdf), avec de nombreux schémas de l'architecture du processeur; elle revient sur les options de compilation.
Une documentation IBM fait une synthèse sur les différentes options d'optimisation; elle est disponible en anglais (.pdf) et date de la version xlc 11.1 (avril 2010).