Emva kweenyanga ezintandathu zophuhliso ukumiliselwa kohlelo olutsha lweprojekthi ye-LLVM 11.0 kuzisiwe apho kwenziwe uphuculo oluninzi, olufana nokuhlaziywa kwiPython 3, iipatches ukuxhasa imiyalelo yovavanyo kwiRISC-V kunye notshintsho oluninzi.
Kulabo abangaqhelekanga nge-LLVM, kufuneka bazi ukuba yintoni Ikhithi yezixhobo ehambelana neGCC (iicompiler, optimizers, kunye neekhowudi ezivelisa) eziqulunqa iinkqubo kwi-RISC-efana ne-bit-code intermediate imiyalelo ebonakalayo (umatshini osezingeni eliphantsi kunye nenkqubo yokusebenza okuphezulu).
Yenzelwe ukwandisa ixesha lokudityaniswa, ixesha elibophayo, ixesha lokuphumeza nangaluphi na ulwimi lwenkqubo umsebenzisi afuna ukuyichaza. Kwenziwe okokuqala ukudibanisa C kunye no-C ++, Uyilo lwe-agnostic yolwimi lwe-LLVM, kunye nempumelelo yeprojekthi baye bavelisa iilwimi ezahlukeneyo.
I-pseudocode evelisiweyo inokuguqulwa kusetyenziswa umhlanganisi we-JIT kwimiyalelo yomatshini ngqo ngexesha lokwenziwa kwenkqubo.
Iimpawu ezintsha zeLLVM 11.0
Kule nguqulo intsha yeLLVM 11.0 Inkqubo yokwakha ihanjisiwe ukuba isebenzise iPython 3Kananjalo ukusetyenziswa kwePython 3 akunyanzeliswa, kuba kwimeko ayifumaneki, ukhetho lokubuyela umva lusetyenzisiwe ukusebenzisa iPython 2.
Nikela i-vector-function-abi-variant yongezwa ukumelwa okuphakathi (IR) Ukuchaza imephu phakathi kwesikali kunye nemisebenzi yevektha yeefowuni zokwenza vectorization. Iindidi ezimbini ezahlukileyo ze vector, llvm :: FixedVectorType kunye llvm :: ScalableVectorType, zikhutshwe kwi llvm :: VectorType.
Ukuziphatha okungachazwanga kusekwe kwisebe elingasetyenziswanga kwaye kudlula kumaxabiso angachazwanga ukuya kwimisebenzi esemgangathweni yamathala eencwadi.
Kwi-memset / memcpy / memmove, kuvunyelwe ukudlulisa izikhombisi ezingachazwanga, kodwa ukuba iparameter enobungakanani ilingana no-zero.
I-LLJIT yongeza inkxaso yokuqalisa ngokusesikweni ngokusebenzisa i-LLJIT :: Qalisa kunye ne-LLJIT :: iindlela zokuqalisa.
Yongeze i Isakhono sokongeza iilayibrari ezimileyo kwiJITDylib usebenzisa udidi lweStaticLibraryDefinitionGenerator. Yongezwe i-C API ye-ORCv2 (API yokudala iicomputer zeJIT).
Kwicala lokuphucula inkxaso kulwakhiwo lweeprosesa ezahlukeneyo:
- Yongezwe Inkxaso yeCortex-A34, Cortex-A77, Cortex-A78 kunye neCortex-X1 processors ngasemva kuyilo loyilo lwe-AArch64. I-ARMv8.2-BF16 (BFloat16) kunye ne-ARMv8.6-A izandiso ziye zaphunyezwa, kubandakanya i-RMv8.6-ECV (i-Enhanced Counter Virtualization), i-ARMv8.6-FGT (Fine Grained Traps), i-ARMv8.6-AMU (Umsebenzi Ukujonga ubuchule) kunye ne-ARMv8.0-DGH (inqaku lokuqokelela idatha).
- Yongezwe inkxaso yeCortex-M55, Cortex-A77, Cortex-A78, kunye neeprosesa zeCortex-X1 kwi-ARM backend. Iphunyezwe iArmv8.6-A Matrix iphindaphindwe kunye neRMv8.2-AA32BF16 BFloat16 yolwandiso.
- Yongeze inkxaso yokuveliswa kwekhowudi ye-POWER10 processor kwi-PowerPC backend. Ukuphuculwa kwendlela yokusebenza okuphuculweyo kunye nenkxaso ephuculweyo yokusebenza kweendawo zokudada.
- Uyilo olungasemva loyilo I-RISC-V inokufumana iipatches ngenkxaso iiseti zemiyalelo eyandisiweyo yolingo engekamkelwa ngokusemthethweni.
Ukongeza kuyo, Amandla okuvelisa ikhowudi yemisebenzi ebophayo anikiweyo idityaniswe nemiyalelo yevector SVE.
Umva wolwakhiwo lwe-AVR lususiwe kudidi lovavanyo kuvavanyo oluzinzileyo olubandakanyiweyo kulwabiwo lwesiseko.
Umva ongasemva we-x86 ixhasa i-Intel AMX kunye ne-TSXLDTRK imiyalelo. Ukongezwa okongeziweyo kuhlaselo lwe-LVI (Inaliti yeXabiso loMthwalo) kunye neendlela eziqhelekileyo zoPhuculo lweeMpembelelo zoPhononongo ziye zaphunyezwa ukuthintela uhlaselo olubangelwa kukwenziwa komsebenzi kwi-CPU.
Olunye utshintsho olwahlukileyo:
- Umva ongasemva kuyilo lweNkquboZ yongeza inkxaso kwiMemoriSanitizer kunye neLeakSanitizer.
- I-Libc ++ yongeza inkxaso kwimathematics header file .
- Ukongezwa kwamandla kwikhonkco le-LLD.
- Ukuphuculwa kwenkxaso ye-ELF, kubandakanya ukhetho olongezekileyo "-lto-emit-asm", "-lto-whole-program-ebonakalayo", "-print-archive-stats", "-shuffle-section", "-thinlto-single -module "," - ekhethekileyo "," - ukukhutshwa "," - imisonto = N ".
- Yongezwe "-time-trace" ukhetho lokugcina umkhondo kwifayile, enokuthi emva koko idluliswe chrome: // trace interface kwiChannel.
- Ujongano kunye nomqokeleli weGo (llgo) ususiwe ekukhululweni kwaye unokuhlengahlengiswa kwixesha elizayo.
Gqibela ukuba ufuna ukwazi ngakumbi ngayo malunga nale nguqulo intsha, ungakhangela iinkcukacha kwikhonkco elilandelayo.