Der TPDE-LLVM Backend wurde vorgestellt und arbeitet 10 bis 20 Mal schneller als LLVM im Nicht-Optimierungsmodus.

Forscher der Technischen UniversitĂ€t MĂŒnchen haben das TPDE-Toolkit sowie den darauf basierenden Compiler-Backend fĂŒr LLVM – TPDE-LLVM – veröffentlicht. Dieser ermöglicht die Generierung von Maschinen-Code fĂŒr die x86-64 und AArch64 Architekturen basierend auf der LLVM-IR Intermediate Representation. Bei Tests erwies sich TPDE-LLVM als 10 bis 20 Mal schneller als der LLVM Backend -O0 (Code-Generator ohne Optimierungen) bei gleichem Leistungsniveau des resultierenden Maschinen-Codes, wobei die GrĂ¶ĂŸe um 10 bis 30 % zunahm. Die Ergebnisse des Projekts wurden unter der Apache 2.0 Lizenz veröffentlicht.

TPDE-LLVM zielt ursprĂŒnglich darauf ab, Kompilierungen mit minimalen Verzögerungen zu gewĂ€hrleisten, wobei die QualitĂ€t dem Modus ohne Optimierungen ('-O0') entspricht. Das Projekt stellt ein Tool fĂŒr die isolierte AusfĂŒhrung von tpde-llc, eine Bibliothek zur Integration in Anwendungen (z. B. zur Implementierung von JIT-Compiler-FunktionalitĂ€ten) und Patches fĂŒr die Integration mit Clang und Flang bereit.

Der TPDE-LLVM Backend wurde vorgestellt und arbeitet 10 bis 20 Mal schneller als LLVM im Nicht-Optimierungsmodus.

Das Projekt kann als grundlegende Komponente fĂŒr JIT oder zur Erstellung von nicht optimierten Builds verwendet werden. TPDE-LLVM konzentriert sich ausschließlich auf die Kompilierungsgeschwindigkeit und versucht nicht, mit den optimierenden Backends von LLVM zu konkurrieren, die im Vergleich zu TPDE-LLVM wesentlich langsamer arbeiten, aber es ermöglichen, schnelleren und kompakteren Maschinencode zu generieren (ungefĂ€hr doppelt so schnell und halb so groß).

TPDE-LLVM verwendet drei Phasen zur Codegenerierung:

  • Reinigung und Vorbereitung der LLVM-ZwischenreprĂ€sentation;
  • Analyse von Zyklusinformationen und Variablenverwendung;
  • Generierung von Maschinencode.

Der TPDE-LLVM Backend wurde vorgestellt und arbeitet 10 bis 20 Mal schneller als LLVM im Nicht-Optimierungsmodus.

Es wird angemerkt, dass mit der Teilnahme der Autoren von TPDE bereits Optimierungen in die LLVM-Versionen 19 und 20 eingefĂŒhrt wurden, die die Leistung des Standard-LLVM-Backends auf der x86-64-Plattform um 18 % und auf der ARM64-Plattform um 13 % beschleunigen konnten. Nach Ansicht der Autoren von TPDE könnte man in Zukunft mit geringem Aufwand das LLVM-Backend möglicherweise um weitere 10–20 % beschleunigen, doch eine signifikante Leistungssteigerung wĂŒrde erhebliche Änderungen erfordern. Selbst bei umfassenden Überarbeitungen ist es jedoch unwahrscheinlich, dass das bestehende LLVM-Backend um das Zehnfache beschleunigt werden kann.

In der aktuellen Entwicklungsphase hat das TPDE-Projekt das Ziel, die UnterstĂŒtzung fĂŒr die ZwischenreprĂ€sentation des LLVM-Codes, die vom Clang-Frontend in den Optimierungsmodi „-O0“ und „-O1“ generiert wird, zu gewĂ€hrleisten. Die Verarbeitung der ZwischenreprĂ€sentation, die im Modus „-O2“ erstellt wird, wird derzeit nicht unterstĂŒtzt, da TPDE keine UnterstĂŒtzung fĂŒr vektorielle Operationen bietet. Teilweise wird die ZwischenreprĂ€sentation von Flang und dem Rust-Compiler unterstĂŒtzt.

Quelle: opennet.ru

ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen đŸ”„ ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster