Esitatud on TPDE-LLVM tagaplaan, mis töötab 10–20 korda kiiremini kui LLVM optimeerimisrežiimis.

Müncheni Tehnikaülikooli teadlased on avaldanud TPDE tööriistade komplekti ja sellele põhineva kompilatori tahte TPDE-LLVM, mis tagab masinkoodi genereerimise x86-64 ja AArch64 arhitektuuride jaoks, põhinedes LLVM-IR vahevormil. Testimisel osutus TPDE-LLVM 10-20 korda kiiremaks kui LLVM -O0 tagant (koodigeneraator ilma optimeerimiseta) sama tulemuseks masinkoodi jõudluse taseme juures, mille suurus suurenes 10-30%. Projekti tulemused on avaldatud Apache 2.0 litsentsi alusel.

TPDE-LLVM on algselt suunatud kompileerimise tagamisele minimaalsete viivitustega ja kvaliteeditasemega, mis vastab optimeerimata kogumise režiimile («-O0»). Projekt pakub utiliiti iseseisvaks tpde-llc käivitamiseks, raamatukogu rakenduste integreerimiseks (näiteks JIT-kompilaatori funktsionaalsuse rakendamiseks) ja patšid integreerimiseks Clang ja Flang-iga.

Esitatud on TPDE-LLVM tagaplaan, mis töötab 10–20 korda kiiremini kui LLVM optimeerimisrežiimis.

Projekt võib olla aluskompilaatoriks JIT-ile või optimeerimata kogude loomisele. TPDE-LLVM keskendub ainult kompileerimise kiirusel ja ei püüa konkureerida LLVM-i optimeerivate tahkete backendidega, mis töötavad TPDE-LLVMiga võrreldes oluliselt aeglasemalt, kuid võimaldavad genereerida kiiremat ja kompaktsemat masinkoodi (umbes kaks korda kiiremini ja kaks korda väiksema suurusega).

TPDE-LLVM kasutab koodi genereerimiseks kolme etappi:

  • LLVM vahevormi puhastamine ja ettevalmistamine;
  • Tsüklite ja muutujate kasutusinformatsiooni analüüs;
  • Masinkoodi genereerimine.

Esitatud on TPDE-LLVM tagaplaan, mis töötab 10–20 korda kiiremini kui LLVM optimeerimisrežiimis.

On märgitud, et TPDE autorite osalusel on LLVM harudesse 19 ja 20 juba lisatud optimeerimised, mis on võimaldanud kiirendada LLVM põhivarakoodiga töötamist 18% x86-64 platvormil ja 13% ARM64 platvormil. TPDE autorite arvates on tulevikus võimalik LLVM backendi kiirusel suurendada veel 10-20%, kuid edasine jõudluse tõstmine nõuab märkimisväärseid muudatusi. Samuti on isegi korraliku ümberehituse korral ebatõenäoline, et olemasolevat LLVM backendi saab kiirendada 10 korda.

Praegu keskendub projekti TPDE eesmärkidega LLVM-i vaheesituse toe tagamisele, mis on saadud Clangi frontendist optimeerimise režiimides „-O0“ ja „-O1“. Vaheesituse töötlemine, mis on loodud režiimis „-O2“, ei ole veel tagatud, kuna TPDE ei toeta vektorioperatsioone. Osaliselt toetatakse Flangi ja Rusti kompilaatori vahekoode.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster