Il n'y a pas moyens de forcer l'inline, c'est juste un hint qu'on donne au compilateur. Visual c++ se reserve meme le droit de ne pas honorer le forceinline s'il juge que c'est mieux ainsi.
En general, je dirais de faire confiance au compilateur pour les inline. Les version recentes de gcc (et vc++) font du tres bon boulot de ce cote. Par contre, tu peux essayer d'optimiser a d'autre endroits, comme en utilisant -fomit-frame-pointer et les -Ox.
A partir de -O3, gcc va tenir compte de la possibilite d'inliner les fonctions que tu as marquees avec le mot cle inline. (-fomit-frame-pointer est aussi active avec -O3)
Ensuite, si c'est un programme dont tu connais d'avance le type d'architecture sur lequel il va fonctionner, tu peux activer les optimisation par rapport a cette architecture. Ma ligne de commande pour tout ce que je compile (sur gentoo) ressemble a ceci:
-O2 -march=athlon-xp -mcpu=i686 -fomit-frame-pointer -pipe
Ce ne sont pas des settings tres agressifs, mais c'est un bon trade-off entre le temps de compilation et le temps d'execution.
Partager