Hulumtuesit nga Universiteti Teknik i Mynihut publikuan mjete TPDE dhe backend-in e kompilatorit të bazuar në të për LLVM - TPDE-LLVM, i cili siguron gjenerimin e kodit makinerik për arkitekturën x86-64 dhe AArch64, bazuar në përfaqësimin ndërmjetë të kodit LLVM-IR. Në testime, TPDE-LLVM u tregua deri në 10-20 herë më i shpejtë se backend-i LLVM -O0 (gjeneratori i kodit pa optimizime) me të njëjtin nivel performancë të kodit makinerik të rezultuar dhe rritje në madhësi nga 10-30%. Arritjet e projektit janë publikuar nën licencën Apache 2.0.
TPDE-LLVM inicialisht ka si qĂ«llim sigurinĂ« e kompilimit me vonesa minimale dhe njĂ« nivel cilĂ«sie qĂ« pĂ«rkon me modin e ndĂ«rtimit pa optimizime (â-O0â). Projekti ofron njĂ« utilitare pĂ«r ekzekutimin e veçantĂ« tĂ« tpde-llc, njĂ« bibliotekĂ« pĂ«r integrimin nĂ« aplikacione (pĂ«r shembull, pĂ«r implementimin e funksionalitetit tĂ« JIT-kompilatorit) dhe fashat pĂ«r integrimin me Clang dhe Flang.

Projekti mund të përdoret si një komponent bazë kompiluesi për JIT ose për krijimin e ndërtimeve pa optimizime. TPDE-LLVM fokusohet vetëm në shpejtësinë e kompilimit dhe nuk përpiqet të konkurrojë me backend-et optimizuese të LLVM, të cilat janë dukshëm më të ngadalta në krahasim me TPDE-LLVM, por lejojnë gjenerimin e kodit makinerik më të shpejtë dhe më kompakt (rreth dy herë më shpejt dhe dy herë më i vogël në madhësi).
TPDE-LLVM përdor tre etapa për gjenerimin e kodit:
- Pastrimi dhe përgatitja e përfaqësimit ndërmjetë LLVM;
- Analiza e informacionit mbi ciklet dhe përdorimin e variableve;
- Formimi i kodit makinerik.

Vlen të theksohet se me pjesëmarrjen e autorëve të TPDE në degët LLVM 19 dhe 20, janë shtuar optimizime që lejuan përmirësimin e performancës së backend-it standard të LLVM me 18% në platformën x86-64 dhe 13% në platformën ARM64. Sipas autorëve të TPDE, në të ardhmen është e mundur të përmirësohet backend-i i LLVM edhe me 10-20% pa ndonjë vështirësi të madhe, por përmirësimi i mëtejshëm i performancës do të kërkonte ndryshime të mëdha. Edhe me një ripunim të konsiderueshëm, është pak e mundur që backend-i ekzistues i LLVM të arrijë të përmirësohet me 10 herë.
Në këtë fazë zhvillimi, qëllimi i projektit TPDE është ofrimi i mbështetjes për paraqitjen ndërmjetëse të kodit LLVM, e krijuar nga frontendi Clang në modet e optimizimit "-O0" dhe "-O1". Procesimi i paraqitjes ndërmjetëse të krijuar në modalitetin "-O2" ende nuk garantohet për shkak të mungesës së mbështetjes për operacionet vektoriale në TPDE. Një mbështetje pjesore ekziston për kodin ndërmjetës nga Flang dhe kompileri Rust.
Burimi: opennet.ru
