Red Hat þróar MIR JIT þýðanda

Hjá Red Hat þróun er í gangi nýr léttur JIT þýðandi ÉG, sem tryggir keyrslu kóða sem áður var breytt í milliframsetninguna MIR (Medium Internal Representation, ekki að rugla saman við aðra milliframsetningu ÉG (miðstigs innsýnarhugbúnaður) notaður í Rust þýðandanum). Verkefnið miðar að því að veita ramma fyrir útfærslu á hraðri og þjappaðri túlkun og JIT. Verkefniskóðinn er skrifaður í C ​​og dreift af undir MIT leyfi.

Á núverandi þróunarstigi eru þýðendur fyrir milliframsetninguna MIR undirbúnir fyrir C tungumál og bitakóði LLVM (Bitkóði), en í framtíðinni er áætlað að útfæra möguleikann á að búa til MIR fyrir WebAssembly, Java bætikóða, CIL (Common Intermediate Language), Rust og C++. Verkefnið er þróað af einum af forriturum JIT vélarinnar. MJIT, notað í Ruby. MIR-byggða JIT-ið er áætlað að vera fyrst og fremst innleitt fyrir CRuby и MRubyÍ framtíðinni er möguleikinn á að flytja GCC til að nota MIR ekki heldur útilokaður.

Red Hat þróar MIR JIT þýðanda

Hægt er að tákna MIR-millistigskóða í tvíunda- og textaformi (lesanlegt). Þennan kóða er hægt að keyra í túlki og búa til vélakóða úr honum (x86_64, með áætlunum fyrir ARM64, PPC64 og MIPS64). Öfug umbreyting er einnig möguleg - frá MIR í CIL, Java bætikóða, WebAssembly og C kóða.

Helstu eiginleikar MIR eru meðal annars öflug vélritun, stuðningur við einingar og föll, og leiðbeiningar fyrir tegundarbreytingar, samanburð, reikniaðgerðir og rökfræðiaðgerðir, greiningar og fleira. Hægt er að hlaða einingar, sem innihalda safn af föllum sem eru breytt í MIR-snið, sem bókasöfn, sem og ytri C-kóða.

Red Hat þróar MIR JIT þýðandaRed Hat þróar MIR JIT þýðanda

Helsti kosturinn við að keyra millikóða í JIT í stað þess að þýða hann í innfæddar keyrsluskrár er möguleikinn á að búa til þjappaðar skrár sem hægt er að keyra án endurþýðingar á mismunandi vélbúnaðararkitektúrum (x86, ARM, PPC, MIPS). Fyrir óstuddar arkitektúr er túlkaður háttur í boði, sem í tilviki MIR er 6-10 sinnum hægari en JIT.

Meðal galla núverandi JIT þýðenda
GCC og LLVM eru gagnrýnd fyrir óhóflega uppþembu, hægan þýðingarhraða og erfiðleika við að innleiða sameinaðar hagræðingar á mismunandi forritunarmálum. MIR forritarar reyndu að taka á þessum vandamálum.
vandamál og sett markmið:

  • Samantekt í MIR ætti að vera að minnsta kosti 100 sinnum hraðari en í GCC;
  • JIT-kerfið (e. JIT) til að keyra MIR verður að vera mjög þétt og innihalda um það bil 15 þúsund línur af kóða;
  • Keyrsla MIR með JIT ætti ekki að vera meira en 30% hægari en afköst keyrsluskrár sem er þýdd úr sama C kóða í GCC (með "-O2" hagræðingu);
  • Upphafsstig áður en raunveruleg framkvæmd hefst ættu að taka 100 sinnum styttri tíma;
  • MIR-framsetningin fyrir JIT verður að vera 100 sinnum minni en keyrsluskráin sem var þýdd í GCC.

Í núverandi mynd er MIR-útfærslan langt á undan upphaflegum markmiðum sínum: prófanir hafa sýnt að samantektarafköst MIR eru 178 sinnum hraðari en GCC-O2, keyrsluafköstin eru 6% hægari en í innfæddum kóða, kóðastærðin er 144 sinnum minni og MIR JIT-útfærslan er 16 línur af kóða.

Red Hat þróar MIR JIT þýðanda

Heimild: opennet.ru

Kauptu áreiðanlega hýsingu fyrir síður með DDoS vernd, VPS VDS netþjónum 🔥 Kauptu áreiðanlega vefhýsingu með DDoS vörn, VPS VDS netþjónum | ProHoster