Pour gérer vos consentements :
Categories: Logiciels

Insolite : décortiquez le code généré par le compilateur du GCC

Matt Godbolt vient de lancer une application web originale : le GCC Explorer permet de voir en quelques clics les instructions assembleur générées par le GCC à partir d’un code source C ou C++. L’objectif de ce programme est de déterminer comment les options de compilations peuvent influer sur le code généré.

Nous avons réalisé divers tests avec le code “sum over array opt”. L’influence des options de compilation –Os (compacité) et –O3 (vitesse) est notable. Avec GCC 4.4.7, le premier cas comprend 24 lignes de code assembleur, pour 64 avec le second. En basculant vers le GCC 4.6.3, une compilation en –O3 génère 91 lignes de code. Optimisations maximales, mais compacité minimale !

Passons à l’architecture processeur ARM. Nous voyons que l’écart entre les différentes options d’optimisation se réduit. Ce phénomène a plusieurs explications : cette architecture processeur RISC 32 bits propose par définition peu de moyens de réduire la taille du code ; le code ARM est naturellement bien optimisé ; cette architecture est moins connue que le x86 et fait donc l’objet d’une moindre attention de la part des développeurs.

Suivre les évolutions du C et du C++

En quelques manipulations, nous avons pu mettre au jour des informations intéressantes (mais évidemment peu surprenantes pour un développeur chevronné).

Matt Godbolt s’est servi de son application pour évaluer l’impact des nouvelles fonctionnalités du C++11 sur le code généré. « Il est agréable de voir comment du code élégant se transforme en code machine beau, et peut-être même assez optimal », constate-t-il.

Dernier point, GCC Explorer est un projet open source, que vous pourrez donc librement télécharger, diffuser et modifier.

Crédit photo : © Rob – Fotolia.com.jpg

Recent Posts

Le Réseau interministériel de l’État, sujet à dépendance

La Cour des comptes appelle à formaliser et à professionnaliser certains aspects du RIE, tout…

12 minutes ago

Etalab en position de faiblesse au sein de la Dinum

La Cour des comptes attire l'attention sur le risque d'affaiblissement d'Etalab, privé, ces dernières années,…

2 heures ago

Une Dinum « balbutiante » sur l’open data et les logiciels libres

Missions historiques de la Dinum, l'ouverture des données publiques et la promotion des logiciels libres…

4 heures ago

Pour son premier LLM codeur ouvert, Mistral AI choisit une architecture alternative

Pour développer une version 7B de son modèle Codestral, Mistral AI n'a pas utilisé de…

24 heures ago

Microsoft x Inflection AI : l’autorité de la concurrence britannique lance son enquête

L’Autorité de la concurrence et des marchés (CMA) britannique ouvre une enquête sur les conditions…

1 jour ago

Thomas Gourand, nouveau Directeur Général de Snowflake en France

Thomas Gourand est nommé Directeur Général pour la France. Il est chargé du développement de…

1 jour ago