GCC – Activer les indicateurs du compilateur uniquement pour des fonctions spécifiques

Dans un projet sur lequel je travaille, il y a une boucle for nestede dans un fichier volumineux que j’essaie d’optimiser. Je pense qu’il serait avantageux de comstackr une compilation avec -funroll-all-loops. Toutefois, lorsque j’ajoute cet indicateur au compilateur, il déroule le rest du fichier en boucle et ralentit le programme dans son ensemble. Existe-t-il un moyen (éventuellement via un #pragma) d’appliquer les indicateurs de compilateur à certaines fonctions du fichier au lieu du fichier entier?

Merci d’avance.

L’ atsortingbut de fonction GCC optimize peut être utilisé pour définir une option d’optimisation pour une seule fonction:

 void foo(int bar) __atsortingbute__((optimize ("unroll-all-loops"))) { } 

Je suggérerais de déplacer cette fonction particulière vers un fichier .c séparé pouvant être compilé avec les options supplémentaires que vous souhaitez utiliser. Cela peut nécessiter la création d’un en-tête de style “foo_private.h” à partager entre le fichier .c existant et le nouveau qui leur permet de partager les variables déclarées statiques dans le fichier .c d’origine.