comment voir le code optimisé en c

Je peux examiner l’optimisation à l’aide du profileur, la taille du fichier exécutable et le temps nécessaire à l’exécution.

Je peux obtenir le résultat de l’optimisation. Mais j’ai ces questions,

  • Comment obtenir le code C optimisé.
  • Quel algorithme ou méthode utilisé par C pour optimiser un code.

Merci d’avance.

vous pouvez avoir une idée de l’optimisation en utilisant l’option -fdump-tree-optimized avec gcc. et vous obtiendrez un fichier optimisé. vous ne pouvez pas exécuter le code, mais en utilisant cela, vous pouvez avoir une idée de l’optimisation. n’oubliez pas d’inclure -O2 ou -O3 ou un autre niveau.

Généralement, le code n’est pas optimisé en tant que C. Généralement, les passes d’optimisation sont effectuées longtemps après que le C ait été converti en une forme de représentation intermédiaire plus facile à utiliser par un compilateur en mémoire. Par conséquent, une réponse directe à votre question est que le code C optimisé n’existe jamais.

Le compilateur AC ne produit généralement pas de C optimisé à aucun stade. Au lieu de cela, le compilateur transforme C en une représentation interne simplifiée et la plupart des optimisations du compilateur seront effectuées sur une ou plusieurs de ces représentations intermédiaires . Ensuite, le compilateur génère un assemblage ou un binary à partir de cela.

Le plus proche que vous puissiez obtenir est probablement de comstackr un fichier en assembleur sans optimisation et encore avec l’optimisation la plus élevée, puis en comparant la sortie de l’assembly. Pour ce faire, vous devrez bien maîsortingser le langage d’assemblage. Si vous utilisez gcc , gcc les options -S et -O pour savoir comment faire (ou ne pas faire).

Si votre objective est d’écrire du code plus rapide, votre meilleur choix est d’écrire un meilleur C en utilisant de meilleurs algorithmes et structures de données au niveau C en utilisant soigneusement le profileur.

Si votre objective est simplement de comprendre l’optimisation, essayez Optimisation du programme et Optimisation du compilateur sur Wikipedia pour obtenir des informations générales.

Si vous utilisez GCC, utilisez un argument pour optimiser le code et utilisez –save-temps comme argument. Tout le monde qui dit que le code C n’est pas optimisé en C lors de la compilation avec GCC est dans une certaine mesure faux Écrivez un générateur de séquence de Fibonacci récursif en C et lisez le code prétraité. L’argument susmentionné enregistre également l’assembly généré dans le répertoire à partir duquel GCC est appelé. Si vous êtes plus à l’aise avec l’assemblage syntaxique Intel, utilisez également -masm = intel comme argument.

si vous comprenez assembleur, vous pouvez inspecter le code généré par assembleur par compilateur.