Red Hat entwéckelt MIR JIT Compiler

Bei Red Hat Entwécklung amgaang neie liicht JIT Compiler Kuckt, wat d'Ausféierung vum Code garantéiert, dee virdru an eng Zwëschenvertriedung MIR (Mëttelintern Representatioun, net ze verwiessele mat enger anerer Zwëschenvertriedung) ëmgewandelt gouf Kuckt (Mëttelniveau IR), am Rust Compiler benotzt). De Projet zielt e Kader ze bidden fir séier a kompakt Dolmetscher an JIT ëmzesetzen. De Projet Code ass an C an verdeelt duerch ënner der MIT Lizenz.

Op der aktueller Etapp vun der Entwécklung, Iwwersetzer an der Tëschenzäit Representatioun vun MIR si virbereet C Sprooch an bitcode LLVM (Bitcode), awer an Zukunft ass et geplangt fir d'Fäegkeet ze realiséieren fir MIR fir WebAssembly, Java Bytecode ze generéieren, CIL (Gemeinsam Mëttelstuf Sprooch), Rust an C ++. De Projet gëtt vun engem vun de JIT Motor Entwéckler entwéckelt MJIT, benotzt am Rubin. Als éischt ass JIT baséiert op MIR geplangt fir ëmgesat ze ginn CRuby и MRuby. An Zukunft ass et och méiglech GCC ze porten fir MIR ze benotzen.

Red Hat entwéckelt MIR JIT Compiler

Den Zwëschen MIR Code kann a binär an Text (liesbar) Form presentéiert ginn. Dëse Code kann an engem Dolmetscher ausgefouert ginn a Maschinncode ka generéiert ginn op Basis (x86_64, an ARM64, PPC64 an MIPS64 Pläng). Et ass och méiglech déi ëmgedréint Konversioun ze maachen - vu MIR op CIL, Java Bytecode, WebAssembly an C Code.

Ënnert de Fonctiounen vum MIR, strikt Tippen, Ënnerstëtzung fir Moduler a Funktiounen, Dispositioun vun enger Rei vun Instruktioune fir Typkonversioun, Verglach, arithmetesch a logesch Operatiounen, Verzweigung, etc. Moduler, déi eng Rei vu Funktiounen enthalen, déi an de MIR-Format ëmgewandelt sinn, kënnen a Form vu Bibliothéiken gelueden ginn, a kënnen och extern C Code lueden.

Red Hat entwéckelt MIR JIT CompilerRed Hat entwéckelt MIR JIT Compiler

De Schlësselvirdeel fir Zwëschencode am JIT auszeféieren anstatt an gebierteg ausführbar Dateien ze kompiléieren ass d'Fäegkeet kompakt Dateien ze generéieren déi ausgefouert kënne ginn ouni op verschidden Hardwarearchitekturen opzebauen (x86, ARM, PPC, MIPS). Fir net ënnerstëtzte Architekturen ass en Interpretatiounsmodus verfügbar, deen am Fall vu MIR 6-10 Mol méi lues ass wéi JIT.

Nodeeler vun bestehend JIT Compilers
GCC an LLVM ginn gesot datt si iwwerdriwwen opgeblosen sinn, hunn eng niddreg Kompiléierungsgeschwindegkeet, a si schwéier kombinéiert Optimisatiounen fir verschidde Programméierungssproochen ëmzesetzen. MIR Entwéckler probéiert dës ze léisen
Problemer an Ziler gesat:

  • D'Kompilatioun am MIR soll op d'mannst 100 Mol méi séier sinn wéi am GCC;
  • De JIT fir MIR Ausféierung muss ganz kompakt sinn an ongeféier 15 Tausend Zeilen Code enthalen;
  • D'Ausféierung vun MIR mat JIT soll net méi wéi 30% méi lues sinn wéi d'Performance vun engem ausführbar aus dem selwechte C Code am GCC (mat "-O2" Optimisatiounen);
  • D'Initialiséierungsstadien ier d'tatsächlech Ausféierung ufänkt sollten 100 Mol manner Zäit huelen;
  • D'MIR Representatioun fir JIT muss 100 Mol méi kleng sinn wéi den ausführbar am GCC kompiléiert.

A senger aktueller Form ass d'MIR Implementatioun op vill Manéiere virun den ufanks gesaten Ziler: Tester hu gewisen datt d'Kompiléierungsleeschtung am MIR 2 Mol méi séier ass wéi "GCC -O178", d'Ausféierungsleistung ass 6% hannert dem gebiertege Code, d'Codegréisst ass 144 Mol méi kleng, d'MIR Implementatioun JIT ass 16 Tausend Zeilen Code.

Red Hat entwéckelt MIR JIT Compiler

Source: opennet.ru

Kaaft zouverlässeg Hosting fir Site mat DDoS Schutz, VPS VDS Server 🔥 Kaaft zouverléissegt Websäithosting mat DDoS-Schutz, VPS VDS Server | ProHoster