Compilateurs

Quelle est l'architecture de base de LLVM ?

  1. AUn compilateur dédié au langage C, inutilisable pour les autres langages
  2. BUne combinaison d'assembleur et d'éditeur de liens visant un seul CPU
  3. CUne représentation intermédiaire commune au centre, autour de laquelle se combinent parties avant et parties arrière
Afficher la réponse et l'explication

Réponse : C. Une représentation intermédiaire commune au centre, autour de laquelle se combinent parties avant et parties arrière

LLVM est une infrastructure de compilation centrée sur une représentation intermédiaire commune, LLVM IR. Les parties avant de nombreux langages, à commencer par Clang pour C/C++, convertissent le source en LLVM IR, qui passe par des phases d'optimisation communes, puis des parties arrière pour de nombreux CPU, comme x86, Arm, RISC-V ou les GPU, génèrent le code machine. Pour prendre en charge un nouveau langage ou un nouveau CPU, il suffit de réaliser un seul côté ; c'est sa force. Il n'est réservé ni au C ni à un CPU particulier.

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

Autres questions sur Compilateurs

  1. Dans quelle situation utilise-t-on souvent l'option de niveau d'optimisation désactivant l'optimisation (-O0, etc.) ?
  2. Quelle définition de l'optimisation guidée par profil (PGO) est correcte ?
  3. Quelle optimisation l'optimisation à l'édition de liens (LTO) rend-elle possible ?
  4. En C, le débordement d'un entier signé est un comportement indéfini. Sur cette base, quel code un compilateur optimisant la fonction ci-dessus peut-il générer ?
  5. Parmi les erreurs de programme, laquelle peut être détectée dès la compilation ?

Comparatifs sur ce thème