Oui, mais pas tous... Et cela ne change en rien le fait que le mot-clé inline (pas celui spécifique, donc) ne garantit pas l'inlining.
Non. Cela dépend de son contexte d'appel.
Non, cela dépend surtout du nombre de registres utilisés/utilisables, et ce nombre est particulièrement faible sur des processeurs CISC. Cela dépend aussi d'autres réglages du compilateurs qui peuvent entrer en conflit avec un inlining.
Les macros, c'est comme le feu : si tu fais n'importe quoi avec, notamment en croyant que c'est une fonction, tu te brûles. Cela ne remet pas en cause l'outil lui-même, mais celui qui l'utilise.
Faut arrêter d'entrer en développement comme on entre en religion. Un compilateur n'est qu'un programme, qui fait ce qu'on lui dit de faire, comme on lui dit de le faire. Il n'a pas d'intelligence, et ne peut en aucun cas connaître à l'avance tous les tenants et aboutissants d'un programme en cours de compilation.
Tu devrais arrêter un peu tes professions de foi, je pense, et te pencher un peu sur des cas concrets d'optimisation réellement poussée... Et non pas laisser faire la machine avec une foi tellement absolue qu'elle en devient risible. Comme le dit François, battre la machine n'est pas très difficile, ne serait-ce que parce qu'elle n'a pas de notion du chemin dynamique du programme.
Mais encore faut-il s'être un jour penché sur le sujet pour le comprendre...
Partager