Kwenye Red Hat
Katika hatua ya sasa ya maendeleo, watafsiri katika uwakilishi wa kati wa MIR wameandaliwa
Nambari ya kati ya MIR inaweza kuwasilishwa kwa njia ya binary na maandishi (yanayoweza kusomeka). Msimbo huu unaweza kutekelezwa katika mkalimani na msimbo wa mashine unaweza kuzalishwa kulingana nayo (x86_64, katika mipango ya ARM64, PPC64 na MIPS64). Inawezekana pia kufanya ubadilishaji wa nyuma - kutoka MIR hadi CIL, Java bytecode, WebAssembly na C code.
Miongoni mwa vipengele vya MIR, uchapaji mkali, usaidizi wa moduli na kazi, utoaji wa seti ya maagizo ya uongofu wa aina, kulinganisha, shughuli za hesabu na mantiki, matawi, nk. Moduli, ambazo ni pamoja na seti ya kazi zilizobadilishwa kuwa umbizo la MIR, zinaweza kupakiwa katika mfumo wa maktaba, na pia zinaweza kupakia msimbo wa C wa nje.
Faida muhimu ya kutekeleza msimbo wa kati katika JIT badala ya kukusanya katika faili za asili zinazoweza kutekelezwa ni uwezo wa kutoa faili fupi ambazo zinaweza kutekelezwa bila kujenga upya kwenye usanifu tofauti wa maunzi (x86, ARM, PPC, MIPS). Kwa usanifu usioungwa mkono, hali ya kutafsiri inapatikana, ambayo katika kesi ya MIR ni mara 6-10 polepole kuliko JIT.
Hasara za wakusanyaji wa JIT zilizopo
GCC na LLVM zinasemekana kuwa na uvimbe kupita kiasi, zina kasi ya chini ya utungaji, na ni vigumu kutekeleza uboreshaji wa pamoja wa lugha tofauti za programu. Watengenezaji wa MIR walijaribu kutatua haya
matatizo na kuweka malengo:
- Mkusanyiko katika MIR unapaswa kuwa angalau mara 100 haraka kuliko katika GCC;
- JIT ya utekelezaji wa MIR lazima iwe thabiti sana na ijumuishe takriban mistari elfu 15 ya msimbo;
- Utekelezaji wa MIR kwa kutumia JIT unapaswa kuwa polepole zaidi ya 30% kuliko utendakazi wa kitekelezo kilichokusanywa kutoka kwa msimbo sawa wa C katika GCC (pamoja na uboreshaji wa "-O2");
- Hatua za uanzishaji kabla ya utekelezaji halisi kuanza zinapaswa kuchukua muda mfupi mara 100;
- Uwakilishi wa MIR kwa JIT lazima uwe mdogo mara 100 kuliko ule unaoweza kutekelezwa uliokusanywa katika GCC.
Katika hali yake ya sasa, utekelezaji wa MIR uko kwa njia nyingi mbele ya malengo yaliyowekwa hapo awali: vipimo vimeonyesha kuwa utendaji wa mkusanyiko katika MIR ni mara 2 haraka kuliko "GCC -O178", utendaji wa utekelezaji ni 6% nyuma ya nambari asilia, saizi ya nambari. ni ndogo mara 144, utekelezaji wa MIR JIT ni mistari elfu 16 ya kanuni.
Chanzo: opennet.ru