Aig Red Hat
Aig an ìre leasachaidh làithreach, thathar ag ullachadh airson eadar-theangairean gu riochdachadh eadar-mheadhanach MIR
Faodar an còd MIR eadar-mheadhanach a thaisbeanadh ann an cruth dà-chànanach agus teacsa (leughaidh). Faodar an còd seo a chuir gu bàs ann an eadar-theangair agus faodar còd inneal a chruthachadh stèidhichte air (x86_64, ann am planaichean ARM64, PPC64 agus MIPS64). Tha e comasach cuideachd an tionndadh air ais a dhèanamh - bho MIR gu CIL, Java bytecode, WebAssembly agus còd C.
Am measg feartan MIR, tha clò-sgrìobhadh teann, taic airson modalan agus gnìomhan, solarachadh seata de stiùiridhean airson tionndadh seòrsa, coimeas, obair àireamhachd agus loidsigeach, branching, msaa. Faodar modalan, a tha a’ toirt a-steach seata de ghnìomhan air an atharrachadh gu cruth MIR, a luchdachadh ann an cruth leabharlannan, agus faodaidh iad còd C taobh a-muigh a luchdachadh cuideachd.
Is e am prìomh bhuannachd a bhith a’ cur an gnìomh còd eadar-mheadhanach ann an JIT an àite a bhith a’ cur ri chèile ann am faidhlichean so-ghnìomhaichte dùthchasach an comas faidhlichean teann a ghineadh a ghabhas cur an gnìomh gun a bhith ag ath-thogail air diofar ailtireachd bathar-cruaidh (x86, ARM, PPC, MIPS). Airson ailtireachd gun taic, tha modh eadar-mhìneachaidh ri fhaighinn, a tha ann an cùis MIR 6-10 tursan nas slaodaiche na JIT.
Eas-bhuannachdan bho luchd-cruinneachaidh JIT a tha ann mar-thà
Thathas ag ràdh gu bheil GCC agus LLVM ro shèideadh, gu bheil astar cruinneachaidh ìosal aca, agus gu bheil iad duilich optimizations aonaichte a chuir an gnìomh airson diofar chànanan prògramaidh. Dh'fheuch luchd-leasachaidh MIR ri fuasgladh fhaighinn orra sin
duilgheadasan agus amasan a shuidheachadh:
- Bu chòir cruinneachadh ann am MIR a bhith co-dhiù 100 uair nas luaithe na ann an GCC;
- Feumaidh an JIT airson coileanadh MIR a bhith gu math toinnte agus a bhith a’ toirt a-steach timcheall air 15 mìle loidhne de chòd;
- Cha bu chòir coileanadh MIR a’ cleachdadh JIT a bhith nas fhaide na 30% nas slaodaiche na coileanadh gnìomh a chaidh a chuir ri chèile bhon aon chòd C ann an GCC (le optimizations “-O2”);
- Bu chòir na h-ìrean tòiseachaidh mus tòisich an gnìomh gu bàs a bhith 100 uair nas lugha de ùine;
- Feumaidh an riochdachadh MIR airson JIT a bhith 100 uair nas lugha na an coileanadh a chaidh a chur ri chèile ann an GCC.
Mar a tha e an-dràsta, tha buileachadh MIR ann an iomadh dòigh air thoiseach air na h-amasan a chaidh a shuidheachadh an toiseach: tha deuchainnean air sealltainn gu bheil coileanadh cruinneachaidh ann am MIR 2 uair nas luaithe na “GCC -O178”, tha coileanadh cur gu bàs 6% air cùl còd dùthchasach, meud a’ chòd 144 tursan nas lugha, tha buileachadh MIR JIT 16 mìle loidhne de chòd.
Source: fosgailtenet.ru