1

.C++: De combien de façons le compilateur optimise notre code?

Je voudrais connaître tous les moyens possibles (ou au moins ceux qui sont populaires) dans lesquels les compilateurs peuvent/peuvent optimiser notre code écrit en C++? Je voudrais aussi savoir exactement comment l'optimisation est faite (dans chaque cas)!

Jusqu'à présent, je suis conscient de deux optimisations, à savoir. Optimisation de base vide (EBO) et optimisation de la valeur de retour (RVO). Quoi d'autre y a-t-il? J'ai entendu parler de l'optimisation "const", de l'optimisation "variable inutilisée". Que sont-ils?

.

+1

http://en.wikipedia.org/wiki/Category:Compiler_optimizations – icecrime

+1

Qu'y a-t-il avec les points? – avakar

+0

points? quels points? – Nawaz

Répondre

4

Incroyablement large, parce qu'il ya de nombreuses optimisations et écrivains du compilateur sont toujours penser en plus. Ils sont nombreux, certains optimisant le temps d'exécution, d'autres optimisant la taille binaire. Beaucoup ne sont pas spécifiquement C++, les techniques générales d'optimisation du compilateur sont implémentées pour beaucoup de compilateurs/interpréteurs pour de nombreux langages différents.

Juste une poignée:

Plus d'infos:

+0

. merci de répondre à ce sujet .. au moins je peux commencer à partir de ces liens que vous avez fournis ... :-) – Nawaz

6

Tous possible façons? Vous plaisantez sûrement. Pour cela, parcourez des années de recherche et de pratique en compilateur.

Pour des exemples concrets, rechercher chacune des options: http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

+1

De même, depuis LLVM: http://llvm.org/docs/Passes.html –

5

à partir des documents standard., Section 1.9,

4) Cette disposition est parfois appelée « comme si » la règle, parce une mise en œuvre est Libre de ne tenir compte d'aucune des exigences de la présente Norme internationale tant que le résultat est comme si l'exigence avait été respectée, dans la mesure où cela peut être déterminé à partir de l'obse comportement rvable du programme. Par exemple, une implémentation réelle n'a pas besoin d'évaluer une partie d'une expression si elle peut déduire que sa valeur n'est pas utilisée et qu'aucun effet secondaire affectant le comportement observable du programme n'est produit.

Donc en fait le compilateur conforme à la norme peut effectuer tout type d'optimisations aussi longtemps qu'il produit le résultat souhaité .

+0

.. merci pour la citation de Standard ... :-) – Nawaz

Questions connexes