Compilateurs

Qu'élimine la suppression de code mort (dead code elimination) ?

  1. ALe code le plus souvent exécuté et le plus important du programme
  2. BLes parties jamais exécutées et les calculs dont le résultat n'est utilisé nulle part
  3. CLes instructions de sortie affichant les résultats à l'écran
Afficher la réponse et l'explication

Réponse : B. Les parties jamais exécutées et les calculs dont le résultat n'est utilisé nulle part

La suppression de code mort élimine par exemple le contenu des branches dont la condition est toujours fausse et qui ne sont jamais exécutées, ou les affectations dont le résultat n'est utilisé nulle part. La propagation et le repliement de constantes faisant apparaître de nombreuses affectations devenues inutiles, elle leur est associée. Les parties souvent exécutées sont celles qu'il faut accélérer et ne doivent pas être supprimées. Les instructions ayant un effet visible de l'extérieur, comme l'affichage, font partie du résultat du programme et ne sont pas supprimées.

S'entraîner sur ce thème Retour au thème

Autres questions sur Compilateurs

  1. Quelle combinaison d'avantage et d'inconvénient de l'expansion en ligne (inlining) des fonctions est correcte ?
  2. Quel est le principal effet du déroulage de boucle (loop unrolling) ?
  3. Dans la boucle ci-dessus, quel calcul est concerné par le déplacement d'expression invariante de boucle (sortie de la boucle) ? (x et y ne sont pas modifiés dans la boucle)
  4. Dans la boucle ci-dessus, quelle transformation correspond à la réduction de force appliquée au calcul d'indice i * 4 ?
  5. Quelle est la principale raison pour laquelle la boucle ci-dessus est difficile à vectoriser avec des instructions SIMD ?

Comparatifs sur ce thème