Différents compilateurs C/C++ ont #pragma
s pour contrôler l'optimisation.Quelle est la méthode d'optimisation des fonctions individuelles dans un fichier dans GCC 4.1.1?
Par exemple:
CodeWarrior
#pragma optimization_level 0
void func_no_opt()
{
// Some Work - not optimized
}
#pragma optimization_level 3
void func_full_opt()
{
// Some Work - optimized
}
MSVC
#pragma optimize("g", off)
void func_no_opt()
{
// Some Work - not optimized
}
#pragma optimize("g", on)
void func_full_opt()
{
// Some Work - optimized
}
#pragma optimize("", on)
void func_default_opt()
{
// Some Work - default optimizations
}
Pour des raisons purement de performance, j'ai deux ou trois fonctions qui doivent être optimisés dans toutes les versions , y compris les versions de débogage qui ne sont pas optimisées
Est-il possible dans GCC (en particulier 4.1.1) de faire quelque chose de semblable à ces autres compilateurs? Malheureusement, GCC 4.4 n'est pas pris en charge sur ma plate-forme cible (matériel propriétaire), donc je ne peux pas utiliser l'attribut d'optimisation - c'est-à-dire __attribute__((optimize(...)))
.
En outre, sur la chaîne d'outils pour cette plate-forme cible, il est un outil de construction automatique en vrac; il n'est donc pas possible de séparer les fonctions dans un fichier séparé et de modifier les paramètres d'optimisation, car les fichiers d'un projet peuvent être automatiquement combinés pour augmenter la vitesse de compilation et de liaison. Je devrais créer une bibliothèque distincte de ces fonctions et la faire relier afin de faire la méthode de séparation. Cela pourrait être un peu plus douloureux que cela ne le serait, surtout s'il y a une méthode plus simple d'accomplir cela.
Ugghh .. J'espérais qu'il y aurait un moyen plus facile. Je suppose que je vais devoir souffrir jusqu'à ce qu'ils commencent à soutenir 4.4 GCC :-( – Adisak