TPDE-LLVM-backendet har presenterats och arbetar 10-20 gÄnger snabbare Àn LLVM i icke-optimerat lÀge

Forskare vid Technische UniversitĂ€t MĂŒnchen har publicerat verktyget TPDE och en compilerback-end baserad pĂ„ detta för LLVM – TPDE-LLVM, som möjliggör generering av maskinkod för arkitekturerna x86-64 och AArch64 baserat pĂ„ LLVM-IR mellanliggande kodrepresentation. Under tester visade det sig att TPDE-LLVM Ă€r 10-20 gĂ„nger snabbare Ă€n LLVM-back-end med optimeringslĂ€gen -O0 (kodgenerator utan optimeringar) med samma prestandanivĂ„ för den resulterande maskinkoden och en ökning av storleken med 10-30%. Projektets resultat har publicerats under Apache 2.0-licensen.

TPDE-LLVM Àr initialt inriktat pÄ att sÀkerstÀlla kompilering med minimala förseningar och en kvalitetsnivÄ som motsvarar bygglÀget utan optimeringar ("-O0"). Projektet tillhandahÄller ett verktyg för isolerat körande av tpde-llc, ett bibliotek för integration i applikationer (t.ex. för implementering av JIT-kompilatorfunktionalitet) och patchar för integration med Clang och Flang.

TPDE-LLVM-backendet har presenterats och arbetar 10-20 gÄnger snabbare Àn LLVM i icke-optimerat lÀge

Projektet kan anvÀndas som en grundlÀggande kompileringkomponent för JIT eller för att skapa ooptimerade byggnader. TPDE-LLVM fokuserar enbart pÄ kompileringens hastighet och försöker inte konkurrera med LLVM:s optimerande back-end som Àr avsevÀrt lÄngsammare jÀmfört med TPDE-LLVM, men som kan generera snabbare och mer kompakt maskinkod (ungefÀr tvÄ gÄnger snabbare och hÀlften sÄ stor).

TPDE-LLVM anvÀnder tre steg för kodgenerering:

  • Rengöring och förberedelse av LLVM:s mellanliggande representation;
  • Analys av cykel- och variabelanvĂ€ndningsinformation;
  • Generering av maskinkod.

TPDE-LLVM-backendet har presenterats och arbetar 10-20 gÄnger snabbare Àn LLVM i icke-optimerat lÀge

Det noteras att med författarna till TPDE Ă€r optimeringar redan tillagda i LLVM-versionerna 19 och 20, vilket har lett till en 18% ökning av prestandan för LLVM:s standardback-end pĂ„ x86-64-plattformen och 13% pĂ„ ARM64-plattformen. Enligt författarna till TPDE kan back-end för LLVM i framtiden sannolikt hastighetsökas med 10-20% med smĂ„ insatser, men vidare förbĂ€ttringar kommer att krĂ€va betydande förĂ€ndringar. Även med betydande omarbetningar Ă€r det osannolikt att den befintliga LLVM-back-end kan snabbas upp med 10 gĂ„nger.

I det nuvarande skedet av utvecklingen Àr ett av mÄlen för projektet TPDE att stödja mellanrepresentationen av koden LLVM, som genereras av Clang-frontenden i optimeringslÀgena "-O0" och "-O1". Bearbetning av mellanrepresentationen som skapades i lÀget "-O2" garanteras inte Àn pÄ grund av brist pÄ stöd i TPDE för vektoroperationer. Delvis stöds mellanliggande kod frÄn Flang och Rust-kompilatorn.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster