I-LLVM 12.0 isivele ikhishiwe futhi lezi yizindaba zayo

LLVM

Ngemuva kwezinyanga eziyisithupha zentuthuko kwethulwe uhlobo olusha lwephrojekthi ye-LLVM 12.0 I-GCC-ehambisana (abahlanganisi, ama-optimizer, nama-code generator) ahlanganisa izinhlelo zibe yi-bitcode emaphakathi yemiyalo ebonakalayo efana ne-RISC (umshini obonakalayo osezingeni eliphansi nohlelo lokusebenziseka kwamazinga amaningi).

Kule nguqulo entsha singathola ukuthuthuka okuhlukahlukene nezindaba, esingagqamisa kuyo imfanelo yomsebenzi omusha "tune-cpu" ukusekela -mune njenge-gcc, kanye nokwenza ngcono kuzingxenyekazi ezahlukahlukene.

Izici ezintsha eziyinhloko ze-LLVM 12.0

Kule nguqulo entsha, singakuthola lokho ukusekelwa kwethuluzi lamathuluzi wokwakha i-llvm-build ibhalwe nge-python kunqanyuliwe, esikhundleni sokuthi iphrojekthi isishintshe ngokuphelele ukusebenzisa uhlelo lwe-CMake build.

I-backend yokwakhiwa kwe-AArch64 ithuthukise ukusekelwa kwepulatifomu yeWindows: ukwenziwa okulungile kokukhipha okuhlanganisiwe kunikezwa ngezinhlelo ze-Windows ezihlosiwe, ukwenziwa kwedatha kumakholi we-unwind kulungiselelwe (usayizi wedatha enjalo wehliswe ngama-60%), ikhono lokwenza idatha lingeziwe ekuphumuleni kusetshenziswa iziqondiso ze-seh.

Ngesikhathi I-PowerPC backend backend ifaka ukulungiselelwa okusha kokufakwa kwe-inline ne-loop, ukuthuthuka kokusekelwa kwama-processor we-Power10, ukwesekwa okungeziwe kwemiyalo ye-MMA yokuphatha ukuhlelwa, nokusekelwa okuthuthukisiwe kohlelo lokusebenza lwe-AIX.

para I-x86 ingeze ukusekelwa kwe-AMD Zen 3, i-Intel Alder Lake ne-Intel Sapphire Rapids processors, kanye nemiyalo yabaprosesa be-HRESET, UINTR, ne-AVXVNNI. Kususwe ukwesekwa kwezandiso ze-MPX (izandiso zokuvikela inkumbulo) ukuhlola izikhombisi ngokumelene nemikhawulo yendawo yememori (lobu buchwepheshe abuzange busetshenziswe kabanzi futhi selususiwe ku-GCC naku-clang). Isihlanganisi sengeze ukusekelwa kweziqalo {disp32} kanye ne- {disp8} kanye nezijobelelo .d32 kanye ne- .d8 ukulawula ubukhulu be-offset yama-opharetha nezinguquko. Isichasiso esisha esithi "tune-cpu" sengezwe ukulawula ukunikwa amandla kokulungiswa kwemiklamo emincane.

Olunye ushintsho olugqamile yilolo kungezwe imodi entsha "-fsanitize = unsigned-shift-base" ukuthola ukugcwala kwenombolo okungasayiniwe ngemuva kokushintshela kwesobunxele. Ngefomethi ye-Mach-O (macOS), ukwesekwa kufakwa ekwakhiweni kwe-arm64, ingalo, ne-i386, i-link stage optimization (LTO), kanye ne-stack unwind lapho usingatha okuhlukile.

Futhi kugqanyiswa imfanelo entsha yesici "tune-cpu" lokho kuvumela oUkulungiselelwa kwe-microarchitecture kuyasetshenziswa kungakhathalekile imfanelo ye- "target-cpu" noma kusuka ku-CPU yeTargetMachine ezosetshenziselwa ukukhetha isethi yemiyalo. Uma isibaluli singekho, i-CPU yokulungisa izolandela i-CPU eqondisiwe.

ILibc ++ isebenzisa izici ezintsha ze-C ++ 20 ejwayelekile futhi ngiqale ukuthuthukisa izici zokucaciswa kwe-C ++ 2b, plus kungezwe ukusekelwa kokuhlangana nokukhubazeka kosekelo lwendawo ("-DLIBCXX_ENABLE_LOCALIZATION = KUVALIWE") namadivayisi okukhiqiza izinombolo-mbumbulu ezingahleliwe.

Ngesikhathi kokuthuthuka kweClang 12, kokwakhiwa kwe-AArch64, kufakwe amafulegi amasha wokuhlanganisa "-Moutline-atomics" ne- "-mno-outline-atomics" ukunika amandla nokukhubaza imisebenzi yomsizi we-athomu efana ne- "__aarch64_cas8_relax". Le misebenzi yesikhathi sokusebenza inquma ukuthi ngabe kukhona ukusekelwa kwe-Large System Extensions (LSE) futhi isebenzise imiyalo enikeziwe yokucubungula i-athomu noma ukubuyela emuva ukusebenzisa imiyalo ye-LL / SC (Load-link / store-conditional) yokuvumelanisa.

Isikhombi 'salokhu' manje sesicutshungulwa ngamasheke angasebenzi futhi angathandeki (N). Inketho ye- "-fdelete-null-pointer-checks" ingasetshenziswa ukususa imfanelo engeyona eyize lapho kudingeka amanani we-null.

Ku-Linux yokwakhiwa kwe-AArch64 ne-PowerPC, "-fasynchronous -wind-tables" inikwe amandla ukukhiqiza amatafula wezingcingo, njengakwi-GCC.

Ku- "#pragma clang loop vectorize_width" ikhono lokucacisa izinketho "ezilungisiwe" (ezizenzakalelayo) nezingama "scalable" ukukhetha indlela ye-vectorization ingeziwe.

Kwisiphakeli se-clangd caching (i-Clang Server) ku-Linux, ukusetshenziswa kwememori ngesikhathi sokusebenza kwesikhathi eside kuncishiswe kakhulu (kunikezwa ucingo lwezikhathi ezithile ku-malloc_trim ukubuyisa amakhasi ememori wamahhala ohlelweni lokusebenza).

Okokugcina uma unesifiso sokwazi okwengeziwe ngakho mayelana nale nguqulo entsha, unga Sicela ubheke imininingwane kulokhu okulandelayo. isixhumanisi


Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Unomthwalo wemfanelo ngedatha: AB Internet Networks 2008 SL
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.