Red Hat dia mamolavola compiler MIR JIT

Ao amin'ny Red Hat mandeha ny fampandrosoana JIT compiler maivana vaovao ahy, izay miantoka ny fanatanterahana ny fehezan-dalΓ na izay efa niova teo aloha ho solontena manelanelana MIR (Representation anatiny antonony, tsy afangaro amin'ny solontena manelanelana hafa ahy (IR mid-level), ampiasaina amin'ny compiler Rust). Ny tetikasa dia mikendry ny hanome rafitra ho an'ny fampiharana ny mpandika teny haingana sy malefaka ary JIT. Ny kaody tetikasa dia voasoratra amin'ny C sy nozarain'i eo ambanin'ny lisansa MIT.

Eo amin'ny dingan'ny fampandrosoana amin'izao fotoana izao, ny mpandika teny amin'ny solontena manelanelana an'ny MIR dia efa vonona C fiteny ary bitcode LLVM (Bitcode), fa amin'ny ho avy dia mikasa ny hampihatra ny fahafahana mamorona MIR ho an'ny WebAssembly, Java bytecode, CIL (Fiteny mahazatra mahazatra), Rust ary C++. Ny tetikasa dia novolavolain'ny iray amin'ireo mpamorona motera JIT MJIT, ampiasaina amin'ny Ruby. Voalohany indrindra, ny JIT mifototra amin'ny MIR no kasaina hampiharina Cruby ΠΈ MRuby. Amin'ny ho avy, azo atao ihany koa ny mandefa GCC hampiasa MIR.

Red Hat dia mamolavola compiler MIR JIT

Ny kaody MIR mpanelanelana dia azo aseho amin'ny endrika binary sy lahatsoratra (azo vakina). Ity kaody ity dia azo tanterahina amin'ny mpandika teny ary ny kaody milina dia azo amboarina mifototra amin'izany (x86_64, amin'ny drafitra ARM64, PPC64 ary MIPS64). Azo atao ihany koa ny manao ny fiovam-po mivadika - avy amin'ny MIR mankany CIL, Java bytecode, WebAssembly ary C code.

Anisan'ny mampiavaka ny MIR, fanoratana henjana, fanohanana ny modules sy ny asa, ny fanomezana toromarika ho an'ny fiovam-po karazana, fampitahana, asa arithmetika sy lojika, sampana, sns. Ny maody, izay ahitana andiana fiasa niova fo amin'ny endrika MIR, dia azo ampidirina amin'ny endrika tranomboky, ary afaka mameno ny kaody C ivelany.

Red Hat dia mamolavola compiler MIR JITRed Hat dia mamolavola compiler MIR JIT

Ny tombony lehibe amin'ny fanatanterahana ny kaody mpanelanelana ao amin'ny JIT fa tsy ny fanangonana amin'ny rakitra azo tanterahana teratany dia ny fahafahana mamorona rakitra compact izay azo tanterahina tsy misy fanamboarana amin'ny rafitra hardware samihafa (x86, ARM, PPC, MIPS). Ho an'ny maritrano tsy tohanana dia misy fomba fandikana, izay amin'ny tranga MIR dia 6-10 heny kokoa noho ny JIT.

Ny tsy fahampian'ny compiler JIT efa misy
Ny GCC sy ny LLVM dia voalaza fa mibontsina be loatra, manana hafainganam-pandeha ambany indrindra, ary sarotra ny mampihatra ny fanatsarana mitambatra ho an'ny fiteny fandaharana samihafa. Niezaka namaha izany ireo mpamorona MIR
olana ary mametraka tanjona:

  • Ny fanangonana ao amin'ny MIR dia tokony ho avo 100 heny fara-fahakeliny haingana kokoa noho ny ao amin'ny GCC;
  • Ny JIT ho an'ny famonoana ny MIR dia tsy maintsy mirindra tsara ary misy andalana 15 arivo eo ho eo;
  • Ny fanatanterahana ny MIR mampiasa JIT dia tsy tokony hihoatra ny 30% miadana kokoa noho ny fampandehanana ny executable natambatra avy amin'ny kaody C mitovy amin'ny GCC (miaraka amin'ny fanatsarana "-O2");
  • Ny dingana fanombohana alohan'ny hanombohan'ny tena famonoana dia tokony haharitra 100 heny ny fotoana;
  • Ny fanehoana MIR ho an'ny JIT dia tsy maintsy avo 100 heny noho ny azo tanterahina natambatra ao amin'ny GCC.

Amin'ny endriny ankehitriny, ny fampiharana MIR dia amin'ny fomba maro mialoha ny tanjona napetraka tany am-boalohany: ny fitsapana dia naneho fa ny fahombiazan'ny fanangonana ao amin'ny MIR dia 2 heny haingana noho ny "GCC -O178", ny fahombiazan'ny famonoana dia 6% aorian'ny kaody teratany, ny haben'ny kaody. dia 144 heny kokoa, ny fampiharana MIR JIT dia 16 arivo andalana code.

Red Hat dia mamolavola compiler MIR JIT

Source: opennet.ru

Add a comment