Backend TPDE-LLVM er introduceret og arbejder 10-20 gange hurtigere end LLVM i uoptimiseret tilstand.

Forskere fra Technische Universität München har offentliggjort TPDE værktøjet og den dér baserede TPDE-LLVM backend til LLVM, som muliggør generering af maskinkode til x86-64 og AArch64 arkitekturer baseret på LLVM-IR mellemlagrepræsentation. I testning viste TPDE-LLVM sig at være 10-20 gange hurtigere end LLVM -O0 backend (code generator uden optimeringer) ved samme niveau af den resulterende maskinkodes ydeevne og en størrelse stigning på 10-30%. Projektets resultater er offentliggjort under Apache 2.0 licensen.

TPDE-LLVM har oprindeligt til formål at sikre kompilering med minimale forsinkelser og et kvalitet niveau, der svarer til samlingsmetoden uden optimeringer (‘-O0’). Projektet leverer et værktøj til særskilt kørsel af tpde-llc, et bibliotek til integration i applikationer (f.eks. til implementering af JIT-kompilator funktionalitet) og patches til integration med Clang og Flang.

Backend TPDE-LLVM er introduceret og arbejder 10-20 gange hurtigere end LLVM i uoptimiseret tilstand.

Projektet kan bruges som en grundlæggende kompilering komponent til JIT eller til at skabe uoptimale samlinger. TPDE-LLVM fokuserer udelukkende på kompileringens hastighed og forsøger ikke at konkurrere med LLVMs optimerende backends, som sammenlignet med TPDE-LLVM arbejder betydeligt langsommere, men tillader generering af hurtigere og mere kompakt maskinkode (cirka 2 gange hurtigere og 2 gange mindre i størrelse).

TPDE-LLVM anvender tre faser til kodegenerering:

  • Rensning og forberedelse af LLVM mellemlagrepræsentationen;
  • Analyse af cykel information og brug af variable;
  • Generering af maskinkode.

Backend TPDE-LLVM er introduceret og arbejder 10-20 gange hurtigere end LLVM i uoptimiseret tilstand.

Det bemærkes, at med forfatterne fra TPDE er optimeringer allerede tilføjet i LLVM versioner 19 og 20, hvilket har ført til en forbedring af den indbyggede LLVM backend med 18% på x86-64 platformen og 13% på ARM64 platformen. Ifølge TPDEs forfattere er det muligt at forbedre LLVM backenden med 10-20% i fremtiden med minimale ændringer, men yderligere forbedringer i ydeevnen vil kræve betydelige ændringer. Selv med væsentlige revisioner er det dog usandsynligt, at den eksisterende LLVM backend kan forbedres med 10 gange.

På det nuværende udviklingsstadium er et af målene for TPDE-projektet at sikre støtte til det mellemliggende LLVM-kode, der er genereret af Clang-frontenden i optimeringsindstillingerne "-O0" og "-O1". Behandlingen af det mellemliggende kode genereret i "-O2"-tilstand er endnu ikke garanteret på grund af mangel på understøttelse af vektoroperationer i TPDE. Delvist understøttes det mellemliggende kode fra Flang og Rust-kompilatoren.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster