Pour la plupart, je dirais que vous ne devez pas vous inquiéter trop beaucoup sur les commutateurs. Les défauts ont tendance à être acceptable pour la plupart des objectifs. Mahin a indiqué où vous pouvez trouver ce que tous les commutateurs font, mais vous devez être prudent car ils peuvent avoir des effets secondaires inattendus. Par exemple, le compilateur gcc (que je connais plus) a un commutateur -fomit-frame-pointer. C'est correct de l'utiliser. Cela libèrera un registre. Cependant, si votre programme tombe en panne, vous n'obtiendrez aucune trace de pile. Donc, si vous essayez de déboguer votre programme, vous ne voulez pas celui-ci. D'autres optimisations pourraient avoir des effets secondaires "plus fous" selon votre système.
L'autre chose à souligner est que, bien que les drapeaux fassent généralement ce qu'ils disent, ils ne sont pas toujours garantis. Par exemple, (encore une fois, dans gcc), le drapeau/O3 devrait produire du code "plus optimisé". Ce n'est pas toujours le cas cependant, et il est recommandé de s'en tenir à/O2.
Oui, j'en suis conscient. Mais je n'ai pas réussi à mettre O2 sans avoir à mettre beaucoup d'autres options qui ne me permettent pas alors de déboguer le code (qui est l'objet que je veux voir son code dissemblable). J'ai essayé/Ox, mais pour l'utiliser j'ai dû désactiver les contrôles d'exécution de base (/ RTC), le format d'information de débogage, et un autre dont je ne me souviens pas. –