A fost prezentat backendul TPDE-LLVM, care funcționează de 10-20 de ori mai repede decât LLVM în modul fără optimizare

Cercetătorii de la Universitatea Tehnică din München au publicat instrumentul TPDE și backend-ul compilatorului bazat pe acesta pentru LLVM — TPDE-LLVM, care oferă generarea de cod mașină pentru arhitecturile x86-64 și AArch64 pe baza reprezentării intermediare a codului LLVM-IR. În testele efectuate, TPDE-LLVM s-a dovedit a fi de 10-20 de ori mai rapid decât backend-ul LLVM -O0 (generatorul de cod fără optimizări) la același nivel de performanță a codului mașină rezultat, cu o creștere a dimensiunii de 10-30%. Contribuțiile proiectului au fost publicate sub licența Apache 2.0.

TPDE-LLVM este inițial destinat asigurării compilării cu întârzieri minime și cu un nivel de calitate corespunzător modului de construire fără optimizări («-O0»). Proiectul oferă o utilitară pentru rularea separată a tpde-llc, o bibliotecă pentru integrarea în aplicații (de exemplu, pentru implementarea funcționalității JIT-com, și patch-uri pentru integrarea cu Clang și Flang.

A fost prezentat backendul TPDE-LLVM, care funcționează de 10-20 de ori mai repede decât LLVM în modul fără optimizare

Proiectul poate fi utilizat ca un component de bază pentru JIT sau pentru crearea de compilări neoptimizate. TPDE-LLVM se concentrează doar pe viteza de compilare și nu încearcă să concureze cu backend-urile optimizatoare LLVM, care, comparativ cu TPDE-LLVM, funcționează semnificativ mai lent, dar permit generarea de cod mașină mai rapid și mai compact (aproximativ de 2 ori mai repede și de 2 ori mai mic ca dimensiune).

TPDE-LLVM folosește trei etape pentru generarea codului:

  • Curățarea și pregătirea reprezentării intermediare LLVM;
  • Analiza informațiilor despre bucle și utilizarea variabilelor;
  • Formarea codului mașină.

A fost prezentat backendul TPDE-LLVM, care funcționează de 10-20 de ori mai repede decât LLVM în modul fără optimizare

Se observă că, cu participarea autorilor TPDE, în ramurile LLVM 19 și 20 au fost deja adăugate optimizări care au permis accelerarea funcționării backend-ului standard LLVM cu 18% pe platforma x86-64 și cu 13% pe platforma ARM64. Potrivit autorilor TPDE, în viitor, cu eforturi minime, backend-ul LLVM ar putea fi accelerat cu încă 10-20%, dar o creștere ulterioară a performanței va necesita modificări semnificative. Chiar și cu o reproiectare semnificativă, este puțin probabil ca backend-ul existent LLVM să poată fi accelerat de 10 ori.

În etapa actuală de dezvoltare, printre obiectivele proiectului TPDE se numără asigurarea suportului pentru reprezentarea intermediară a codului LLVM, obținută de front-end-ul Clang în modurile de optimizare „-O0” și „-O1”. Procesarea reprezentării intermediare create în modul „-O2” nu este încă garantată din cauza lipsei suportului în TPDE pentru operațiile vectoriale. Parțial este acceptat codul intermediar de la Flang și compilatorul Rust.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster