LLVM 19 fa'apipi'i seti ua lomia

Ina ua maeŹ»a le ono masina o le atinaŹ»e, na tuŹ»uina atu le faŹ»asalalauga o le LLVM 19.1.0 poloketi, atinaŹ»eina o meafaigaluega (faŹ»apipiŹ»i, optimizers ma code generators) e tuŹ»ufaŹ»atasia polokalame i totonu o le bitcode intermediate o RISC-pei o faŹ»atonuga faŹ»apitoa (o se masini komepiuta maualalo ma se tele. -level optimization system). O le pseudocode fa'atupuina e mafai ona liua i le masini fa'ailoga mo se tu'ufa'atasiga tu'ufa'atasia po'o le fa'aogaina e le JIT compiler e fa'atupu sa'o ai fa'atonuga masini i le taimi o le fa'atinoga o polokalame. FaŹ»avae i luga o tekinolosi LLVM, o le poloketi o loŹ»o atiaŹ»e le Clang compiler, lea e lagolagoina gagana polokalame C, C ++ ma Objective-C. Amata mai le lala mulimuli, o le poloketi na suia i se polokalame fou mo le fausiaina o numera numera, e tusa ai ma le faŹ»asalaga zero ("N.0") o loŹ»o faŹ»aaogaina i le faŹ»agasologa o le atinaŹ»e, ma o le uluai faŹ»amaumauga faŹ»amautu e tuŹ»uina atu i le numera "N .1ā€.

Faatasi ai ma faʻaleleia i le Clang 19:

  • Fa'aopoopo vaega fa'amatalaina ile C-standard C23:
    • lagolago mo le fa'aogaina o le constexpr specifier e fa'amatala ai mea;
    • macros INFINITY, NAN, FLT_NORM_MAX, DBL_NORM_MAX ma LDBL_NORM_MAX ile float.h;
    • le "#embed" masini mo le tu'ufa'atasia o puna'oa binary;
    • type char8_t mo manoa ma mataitusi ile UTF-8.
  • O le faŹ»atinoina o vaega uma o loŹ»o faŹ»amatalaina i le C ++ 17 faŹ»amaumauga e faŹ»amautinoa. O le la'asaga mulimuli o le fa'aagaaga o le lagolago mo elemene mo le fa'atusaina o fa'ata'ita'iga fa'ata'ita'iga ma fa'aupuga fetaui, lea na fa'aletonu ona o le fa'aletonu ona o fa'afitauli o lo'o iai.
  • I le C ++ 14 mode, lagolago mo le tape galuega ma le tele o fefaŹ»atauaiga e mafai ona faŹ»aogaina,
  • Fa'aopoopo vaega e feso'ota'i ma le C++20 fa'ata'ita'iga: galuega faufale __is_layout_compatible ma __is_pointer_interconvertible_base_of; lagolago atoatoa mo fa'amatalaga mo le fa'aulufaleina o modules; lagolago muamua mo le su'esu'eina otometi o ituaiga o finauga fa'ata'ita'iga a le vasega mo igoa fa'aigoa na fa'aaogaina fa'ata'ita'iga (CTAD mo Alias ​​​​Template).
  • Fa'aopoopo vaega e feso'ota'i ma le C++20 fa'ata'ita'iga: fa'alautele le ola o mea le tumau i fa'amaufa'ailoga e fa'asolosolo i laina; manatu e mafai ona faaliliuina atu; fa'amama fa'atapula'a ma fa'agata le fa'ata'ita'iga "-Winvalid-constexpr"; lagolago mo galuega fa'apitoa ma le manino a le sui o meafaitino fa'atasi ma lisi tutusa.
  • Fa'aopoopo vaega e feso'ota'i ma le lumana'i C ++ 2c (C ++ 26) fa'ata'ita'iga: fa'avasegaina o se afifi o ta'iala i fa'ata'ita'iga; syntax '= tape("mafua'aga"'; uiga mo fusi fa'atulagaina; fa'asaina le noatia o le tau ua toe fa'afo'i i se tau le tumau; fa'amaufa'ailoga fa'atauva'a fa'atauva'a e leai se amio e le fa'amalamalamaina; fa'aalia se mea sese pe a tapeina se fa'asino ile ituaiga e le'i atoatoa; fa'aogaina fa'agata i fa'aupuga gaugau (ā€œā€¦ā€).
  • Fa'aopoopo fu'a fa'aopoopo fou:
    • "-fsanitize=implicit-bitfield-conversion" e siaki ai mo le tipiina ma saini le suiga pe a galue ma bitfields.
    • "-fsanitize=implicit-integer-conversion" e siaki ai le fa'aliliuina o le numera fa'ato'a.
    • "-Wmissing-designated-field-initializers" e suŹ»e ai faŹ»aulutala fanua o loŹ»o misi.
    • "-fexperimental-modules-reduced-bmi" e mafai ai ona faŹ»aititia le BMI (Binary Module Interface) mo C ++ 20 faŹ»aigoaina modules, faŹ»atagaina le faŹ»aogaina o faŹ»aoga masani C ++.
    • "-fexperimental-late-parse-attribute" e mafai ai ona fa'agasolo tuai o uiga i totonu o fa'amatalaga fa'apitoa, e pei o le counted_by attribute.
    • "-fseserate-named-sections" e fatu ai ni vaega tulaga ese eseese mo faailoga o le lalolagi i vaega faapitoa ua faaigoaina.
    • "-fms-define-stdc" mo STDC fetaui ma MSVC.
    • "-Wc++23-compat" ma le "-Wc++2c-compat" o vaega ia o lapataiga e faafaigofie ai le femalagaiga ile C++23 ma le C++26.
    • "-fdisable-block-signature-string" e faŹ»amalo ai le fausiaina o manoa saini mo poloka.
    • "-fpointer-tbaa" e fa'ailoga fa'ailoga le fetaui e fa'aaoga ai le su'esu'ega fa'aigoa (TBAA).
  • Fa'aopoopo uiga fou: sized_by, counted_by_or_null, nonblocking, nonlocating, blocking, vaevaega, sized_by_or_null, amdgpu_max_num_work_groups(x, y, z).
  • Fa'aopoopo galuega faufale fou: __builtin_readsteadycounter, __builtin_popcountg, __builtin_clzg, __builtin_ctzg, __is_bitwise_cloneable.
  • Ua fa'alauteleina meafaigaluega fa'apitoa mo su'esu'ega ma su'esu'ega, fa'aopoopo siaki fou.

Faiga fou autu ile LLVM 19:

  • I le pito i tua mo le fausaga RISC-V, faŹ»ataŹ»itaŹ»iga lagolago mo le Zabha (atomic memory operations), Ssqosid, Ssnpm, Smnpm, Smmpm, Sspm ma Supm faŹ»aopoopoga (faŹ»aaogaina matapulepule), Zba, Zbb, Zbs ua faŹ»aopoopoina. Lagolago mo Ztso, Zabha, Zaamo ma Zalrsc faŹ»aopoopoga ua faŹ»amautuina.
  • O le pito i tua mo le fausaga o le AArch64 ua faŹ»aopoopoina le lagolago mo Cortex-R82AE, Cortex-A78AE, Cortex-A520AE, Cortex-A720AE, Cortex-A725, Cortex-X925, Neoverse-N3, Neoverse-V3 ma Neoverse-V3AE processors.
  • Lagolago mo le Cortex-R52 + processor ua faaopoopo i le pito i tua mo le fausaga o le ARM.
  • FaŹ»aleleia pito i tua mo X86, LoongArch, WebAssembly, MIPS, PowerPC ma AMDGPU fausaga.
  • Ua fa'alauteleina le gafatia ole feso'ota'iga LLD. Fa'aopoopo ituaiga fou o mea e fa'anofo ai: CREL, GNU_PROPERTY_AARCH64_FEATURE_PAUTH, R_AARCH64_AUTH_ABS64 ma R_AARCH64_AUTH_RELATIVE. Fa'aopoopo "--compress-sections" parakalafa ={leai,zlib,zstd}[:tulaga]" e filifili ai le vaega algorithm compression.
  • O lo'o fa'aauau pea ona fa'atino e le faletusi Libc++ le agava'a o fa'ata'ita'iga C++20, C++23 ma C++26.
  • Mai le 3.6 i le 8, o manaŹ»oga mo le version o le Python e manaŹ»omia e fausia ai le LLVM ua faŹ»ateleina.

puna: opennet.ru

FaŹ»atau talimalo faŹ»atuatuaina mo nofoaga ma DDoS puipuiga, VPS VDS servers šŸ”„ Fa'atau le 'upega tafa'ilagi talimalo fa'atuatuaina ma le puipuiga DDoS, 'au'aunaga VPS VDS | ProHoster