Red Hat MIR JIT కంపైలర్‌ను అభివృద్ధి చేస్తుంది

Red Hat వద్ద అభివృద్ధి జరుగుతోంది కొత్త తేలికైన JIT కంపైలర్ ME, ఇది మునుపు ఇంటర్మీడియట్ ప్రాతినిధ్యం MIR (మీడియం ఇంటర్నల్ రిప్రజెంటేషన్, మరొక ఇంటర్మీడియట్ ప్రాతినిధ్యంతో అయోమయం చెందకుండా మార్చబడిన కోడ్ అమలును నిర్ధారిస్తుంది. ME (మధ్య స్థాయి IR), రస్ట్ కంపైలర్‌లో ఉపయోగించబడుతుంది). వేగవంతమైన మరియు కాంపాక్ట్ వ్యాఖ్యాతలు మరియు JITని అమలు చేయడానికి ఒక ఫ్రేమ్‌వర్క్‌ను అందించడం ప్రాజెక్ట్ లక్ష్యం. ప్రాజెక్ట్ కోడ్ C మరియు లో వ్రాయబడింది ద్వారా పంపిణీ చేయబడింది MIT లైసెన్స్ కింద.

ప్రస్తుత అభివృద్ధి దశలో, MIR యొక్క ఇంటర్మీడియట్ ప్రాతినిధ్యంలో అనువాదకులు సిద్ధంగా ఉన్నారు సి భాష మరియు బిట్‌కోడ్ ఎల్‌ఎల్‌విఎం (బిట్‌కోడ్), కానీ భవిష్యత్తులో వెబ్‌అసెంబ్లీ, జావా బైట్‌కోడ్, కోసం MIR ఉత్పత్తి చేసే సామర్థ్యాన్ని అమలు చేయడానికి ప్రణాళిక చేయబడింది. సిఐఎల్ (కామన్ ఇంటర్మీడియట్ లాంగ్వేజ్), రస్ట్ మరియు C++. JIT ఇంజిన్ డెవలపర్‌లలో ఒకరు ప్రాజెక్ట్‌ను అభివృద్ధి చేస్తున్నారు MJIT, రూబీలో ఉపయోగించబడుతుంది. అన్నింటిలో మొదటిది, MIR ఆధారంగా JIT అమలు చేయడానికి ప్రణాళిక చేయబడింది క్రూబీ и MRuby. భవిష్యత్తులో, MIRని ఉపయోగించడానికి GCCని పోర్ట్ చేయడం కూడా సాధ్యమే.

Red Hat MIR JIT కంపైలర్‌ను అభివృద్ధి చేస్తుంది

ఇంటర్మీడియట్ MIR కోడ్ బైనరీ మరియు టెక్స్ట్ (చదవగలిగే) రూపంలో ప్రదర్శించబడుతుంది. ఈ కోడ్‌ను ఇంటర్‌ప్రెటర్‌లో అమలు చేయవచ్చు మరియు దాని ఆధారంగా మెషిన్ కోడ్‌ను రూపొందించవచ్చు (x86_64, ARM64, PPC64 మరియు MIPS64 ప్లాన్‌లలో). MIR నుండి CIL, Java బైట్‌కోడ్, WebAssembly మరియు C కోడ్‌కు - రివర్స్ కన్వర్షన్ చేయడం కూడా సాధ్యమే.

MIR యొక్క లక్షణాలలో, కఠినమైన టైపింగ్, మాడ్యూల్స్ మరియు ఫంక్షన్లకు మద్దతు, టైప్ కన్వర్షన్ కోసం సూచనల సమితిని అందించడం, పోలిక, అంకగణితం మరియు తార్కిక కార్యకలాపాలు, శాఖలు మొదలైనవి. MIR ఆకృతికి మార్చబడిన ఫంక్షన్‌ల సమితిని కలిగి ఉన్న మాడ్యూల్స్, లైబ్రరీల రూపంలో లోడ్ చేయబడతాయి మరియు బాహ్య C కోడ్‌ను కూడా లోడ్ చేయగలవు.

Red Hat MIR JIT కంపైలర్‌ను అభివృద్ధి చేస్తుందిRed Hat MIR JIT కంపైలర్‌ను అభివృద్ధి చేస్తుంది

స్థానిక ఎక్జిక్యూటబుల్ ఫైల్‌లలోకి కంపైల్ చేయడానికి బదులుగా JITలో ఇంటర్మీడియట్ కోడ్‌ను అమలు చేయడం యొక్క ముఖ్య ప్రయోజనం ఏమిటంటే, విభిన్న హార్డ్‌వేర్ ఆర్కిటెక్చర్‌లపై (x86, ARM, PPC, MIPS) పునర్నిర్మించకుండానే అమలు చేయగల కాంపాక్ట్ ఫైల్‌లను రూపొందించగల సామర్థ్యం. మద్దతు లేని ఆర్కిటెక్చర్‌ల కోసం, ఇంటర్‌ప్రెటేషన్ మోడ్ అందుబాటులో ఉంది, ఇది MIR విషయంలో JIT కంటే 6-10 రెట్లు నెమ్మదిగా ఉంటుంది.

ఇప్పటికే ఉన్న JIT కంపైలర్ల యొక్క ప్రతికూలతలు
GCC మరియు LLVMలు అతిగా ఉబ్బినవి, తక్కువ సంకలన వేగం కలిగి ఉంటాయి మరియు వివిధ ప్రోగ్రామింగ్ లాంగ్వేజ్‌ల కోసం కంబైన్డ్ ఆప్టిమైజేషన్‌లను అమలు చేయడం కష్టం. MIR డెవలపర్లు వీటిని పరిష్కరించడానికి ప్రయత్నించారు
సమస్యలు మరియు లక్ష్యాలను నిర్దేశించుకోండి:

  • MIRలో సంకలనం GCC కంటే కనీసం 100 రెట్లు వేగంగా ఉండాలి;
  • MIR అమలు కోసం JIT చాలా కాంపాక్ట్‌గా ఉండాలి మరియు దాదాపు 15 వేల లైన్‌ల కోడ్‌ను కలిగి ఉండాలి;
  • JITని ఉపయోగించి MIRని అమలు చేయడం GCC ("-O30" ఆప్టిమైజేషన్‌లతో) అదే C కోడ్ నుండి కంపైల్ చేయబడిన ఎక్జిక్యూటబుల్ పనితీరు కంటే 2% కంటే ఎక్కువ నెమ్మదిగా ఉండకూడదు;
  • అసలు అమలు ప్రారంభం కావడానికి ముందు ప్రారంభ దశలు 100 రెట్లు తక్కువ సమయం పడుతుంది;
  • JIT కోసం MIR ప్రాతినిధ్యం తప్పనిసరిగా GCCలో కంపైల్ చేయబడిన ఎక్జిక్యూటబుల్ కంటే 100 రెట్లు తక్కువగా ఉండాలి.

దాని ప్రస్తుత రూపంలో, MIR అమలు ప్రారంభంలో నిర్దేశించబడిన లక్ష్యాల కంటే అనేక విధాలుగా ముందుంది: MIRలో సంకలన పనితీరు “GCC -O2” కంటే 178 రెట్లు వేగంగా ఉందని పరీక్షలు చూపించాయి, అమలు పనితీరు స్థానిక కోడ్ కంటే 6% వెనుకబడి ఉంది, కోడ్ పరిమాణం 144 రెట్లు చిన్నది, MIR అమలు JIT 16 వేల లైన్ల కోడ్.

Red Hat MIR JIT కంపైలర్‌ను అభివృద్ధి చేస్తుంది

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి