Un backend TPDE-LLVM a été présenté, fonctionnant de 10 à 20 fois plus vite que LLVM en mode sans optimisation

Des chercheurs de l'UniversitĂ© technique de Munich ont publiĂ© l'outil TPDE et le backend de compilateur basĂ© sur celui-ci pour LLVM — TPDE-LLVM, qui permet la gĂ©nĂ©ration de code machine pour les architectures x86-64 et AArch64 Ă  partir de la reprĂ©sentation intermĂ©diaire du code LLVM-IR. Lors des tests, TPDE-LLVM s'est rĂ©vĂ©lĂ© 10 Ă  20 fois plus rapide que le backend LLVM -O0 (gĂ©nĂ©rateur de code sans optimisations) tout en maintenant le mĂȘme niveau de performance du code machine rĂ©sultant, avec une augmentation de la taille de 10 Ă  30 %. Les rĂ©sultats du projet sont publiĂ©s sous la licence Apache 2.0.

TPDE-LLVM est initialement destiné à garantir une compilation avec des délais minimaux et un niveau de qualité correspondant au mode de compilation sans optimisations (« -O0 »). Le projet propose un utilitaire pour exécuter tpde-llc de maniÚre isolée, une bibliothÚque pour intégration dans des applications (par exemple, pour implémenter la fonctionnalité de compilateur JIT) et des patchs pour intégrer avec Clang et Flang.

Un backend TPDE-LLVM a été présenté, fonctionnant de 10 à 20 fois plus vite que LLVM en mode sans optimisation

Le projet peut ĂȘtre utilisĂ© comme composant de compilation de base pour JIT ou pour crĂ©er des builds non optimisĂ©s. TPDE-LLVM se concentre uniquement sur la vitesse de compilation et ne cherche pas Ă  rivaliser avec les backends optimisateurs de LLVM, qui, par rapport Ă  TPDE-LLVM, fonctionnent considĂ©rablement plus lentement, mais permettent de gĂ©nĂ©rer un code machine plus rapide et plus compact (environ deux fois plus rapide et deux fois moins volumineux).

TPDE-LLVM utilise trois étapes pour la génération de code :

  • Nettoyage et prĂ©paration de la reprĂ©sentation intermĂ©diaire LLVM ;
  • Analyse des informations sur les cycles et l'utilisation des variables ;
  • Formation du code machine.

Un backend TPDE-LLVM a été présenté, fonctionnant de 10 à 20 fois plus vite que LLVM en mode sans optimisation

Il est notĂ© qu'avec l'implication des auteurs de TPDE, des optimisations ont dĂ©jĂ  Ă©tĂ© ajoutĂ©es dans les branches LLVM 19 et 20, permettant d'accĂ©lĂ©rer le backend standard de LLVM de 18 % sur la plateforme x86-64 et de 13 % sur la plateforme ARM64. Selon les auteurs de TPDE, il sera possible Ă  l'avenir d'accĂ©lĂ©rer le backend de LLVM de 10 Ă  20 % sans trop de difficultĂ©s, mais toute amĂ©lioration de la performance nĂ©cessitera des changements significatifs. MĂȘme avec une rĂ©vision majeure, il est peu probable que le backend existant de LLVM puisse ĂȘtre accĂ©lĂ©rĂ© de 10 fois.

À ce stade du dĂ©veloppement, l'un des objectifs du projet TPDE est de garantir le support de la reprĂ©sentation intermĂ©diaire LLVM, obtenue par le front-end Clang en modes d'optimisation « -O0 » et « -O1 ». Le traitement de la reprĂ©sentation intermĂ©diaire créée en mode « -O2 » n'est pas encore garanti en raison de l'absence de support des opĂ©rations vectorielles dans TPDE. Un support partiel est assurĂ© pour le code intermĂ©diaire de Flang et du compilateur Rust.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster