Vargas : options principales du système de compilation C/C++



Vous êtes ici : Support technique → Calcul scalaire sur Vargas → Système de compilation C/C++ → Options principales du système de compilation.


Options d'optimisation du compilateur C/C++

C'est l'option -O (la lettre majuscule 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: elle est équivalente à -O0 (tiret o majuscule zéro),

L'écriture -O est équivalente à -O2.

À 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

Liste des options activées

La liste des options actives peut évoluer dans le temps et aussi surtout en fonction du contexte d'appel du compilateur. Le plus simple pour obtenir cette liste est donc d'utiliser l'option : -qlistopt.

Par exemple :

vargas : cc  -qlistopt source.c
vargas : xlC -qlistopt source.C
La liste des options actives est alors disponible au niveau du fichier source.lst généré par le compilateur.

Rappel : la liste complète des options avec leur signification peut être obtenue via les commandes cc/xlC.

Création d'un fichier de listage pour le compilateur C/C++

Des options permettent, à l'issue de la compilation, de récupérer certains types d'informations dans un fichier dont le nom est celui du fichier compilé suffixé par .lst :

Par exemple :

vargas : cc  -qxref=full -qlistopt source.c
vargas : xlC -qxref=full -qlistopt source.C

Options de débogage

Dans une phase de débogage, les options suivantes peuvent être d'une aide précieuse :

Pour exemple, pour utiliser toutes les options décrites :

vargas : cc  -qnooptimize -g -qcheck=all
            -qflttrap=overflow:underflow:zerodivide:invalid:enable 
            -qfloat=nans -qheapdebug -qkeepparm source.c
vargas : xlC -qnooptimize -g -qcheck=all
            -qflttrap=overflow:underflow:zerodivide:invalid:enable 
            -qfloat=nans -qheapdebug -qkeepparm source.C

Voici aussi un modèle de Makefile avec des options supplémentaires.

Voir aussi le paragraphe : Outils de débogage


© CNRS - IDRIS, 13/01/2012