Red Hat e hlahisa moqapi oa MIR JIT

Ho Red Hat ntshetsopele e ntse e tswelapele moqapi o mocha oa JIT o bobebe ME, e netefatsang ts'ebetso ea khoutu eo pele e neng e fetotsoe ho boemeli ba mahareng MIR (Medium Internal Representation, hore e se ke ea ferekanngoa le boemeli bo bong ba mahareng. ME (bohare ba boemo ba IR), e sebelisitsoeng ho Rust compiler). Morero ona o ikemiselitse ho fana ka moralo oa ho kenya tšebetsong bafetoleli ba potlakileng le ba sebetsang ka thata le JIT. Khoutu ea morero e ngotsoe ka C le ajoa ke tlas'a laesense ea MIT.

Boemong ba hajoale ba nts'etsopele, bafetoleli ba boemeli ba mahareng ba MIR ba lokiselitsoe C puo le bitcode LLVM (Bitcode), empa nakong e tlang ho reriloe ho kenya ts'ebetsong bokhoni ba ho hlahisa MIR bakeng sa WebAssembly, Java bytecode, CIL (Puo e Tloaelehileng ea Mahareng), Rust le C ++. Morero ona o ntse o ntlafatsoa ke e mong oa bahlahisi ba enjine ea JIT MJIT, e sebelisoang ho Ruby. Pele ho tsohle, JIT e ipapisitse le MIR e reretsoe ho kengoa tšebetsong CRuby и MRuby. Nakong e tlang, hoa khoneha hape ho koung GCC ho sebelisa MIR.

Red Hat e hlahisa moqapi oa MIR JIT

Khoutu ea MIR e bohareng e ka hlahisoa ka mokhoa oa binary le mongolo (o baloang). Khoutu ena e ka etsoa ho toloko mme khoutu ea mochini e ka hlahisoa ho latela eona (x86_64, ka merero ea ARM64, PPC64 le MIPS64). Hape hoa khonahala ho fetola phetoho - ho tloha MIR ho ea ho CIL, Java bytecode, WebAssembly le C khoutu.

Har'a likarolo tsa MIR, ho thaepa ka thata, tšehetso ea li-module le mesebetsi, ho fana ka litaelo tsa ho fetola mofuta, papiso, lipalo le ts'ebetso e utloahalang, branching, joalo-joalo. Li-module, tse kenyelletsang sehlopha sa mesebetsi e fetoletsoeng ho sebopeho sa MIR, li ka jarisoa ka mokhoa oa lilaebrari, hape li ka kenya khoutu ea C ea kantle.

Red Hat e hlahisa moqapi oa MIR JITRed Hat e hlahisa moqapi oa MIR JIT

Monyetla oa bohlokoa oa ho sebelisa khoutu ea mahareng ho JIT sebakeng sa ho bokella lifaele tse ka sebetsoang ke bokhoni ba ho hlahisa lifaele tse kopaneng tse ka etsoang ntle le ho aha bocha meahong e fapaneng ea lisebelisoa (x86, ARM, PPC, MIPS). Bakeng sa meralo e sa tšehetsoeng, mokhoa oa ho toloka o fumaneha, oo molemong oa MIR o liehang ka makhetlo a 6-10 ho feta JIT.

Mefokolo ea li-compilers tse teng tsa JIT
Ho boleloa hore GCC le LLVM li koatile haholo, li na le lebelo le tlase la ho bokella, 'me ho thata ho kenya ts'ebetsong lintlafatso tse kopaneng bakeng sa lipuo tse fapaneng tsa mananeo. Baetsi ba MIR ba lekile ho rarolla tsena
mathata le ho ipehela lipakane:

  • Ho bokella ho MIR ho lokela ho ba bonyane makhetlo a 100 ka potlako ho feta ho GCC;
  • JIT bakeng sa ts'ebetso ea MIR e tlameha ho ba e kopaneng haholo mme e kenyelle mela e ka bang likete tse 15 tsa khoutu;
  • Ho sebelisa MIR ho sebelisa JIT ha hoa lokela ho lieha ho feta 30% ho feta ts'ebetso ea ts'ebetso e hlophisitsoeng ho tsoa ho khoutu e tšoanang ea C ho GCC (ka "-O2" optimizations);
  • Mekhahlelo ea ho qala pele ts'ebetso ea 'nete e qala e lokela ho nka nako e fokolang ka makhetlo a 100;
  • Kemelo ea MIR bakeng sa JIT e tlameha ho ba nyane ka makhetlo a 100 ho feta e ka phethahatsoang e hlophisitsoeng ho GCC.

Ka sebopeho sa eona sa hajoale, ts'ebetsong ea MIR e ka pele ho lipheo tse behiloeng qalong: liteko li bonts'itse hore ts'ebetso ea ho bokella ho MIR e potlakile ka makhetlo a 2 ho feta "GCC -O178", ts'ebetso ea ts'ebetso ke 6% ka mor'a khoutu ea tlhaho, boholo ba khoutu. e nyane ka makhetlo a 144, ts'ebetsong ea MIR JIT ke mela e likete tse 16 ea khoutu.

Red Hat e hlahisa moqapi oa MIR JIT

Source: opennet.ru

Eketsa ka tlhaloso