Ho lokolloa ha LLVM 12.0 compiler suite

Kamora likhoeli tse ts'eletseng tsa nts'etsopele, ho hlahisoa tokollo ea projeke ea LLVM 12.0 - sesebelisoa sa lisebelisoa se lumellanang le GCC (li-compilers, optimizers le lijenereithara tsa khoutu) tse bokellang mananeo ka har'a bitcode ea lipakeng tsa RISC-joaloka litaelo tse hlakileng (mochini oa boemo bo tlase o nang le mokhoa oa ho ntlafatsa maemo a mangata). Khoutu ea pseudo e hlahisitsoeng e ka fetoloa ke moqapi oa JIT hore e be litaelo tsa mochini hantle ka nako ea ts'ebetso ea lenaneo.

Lintlafatso ho Clang 12.0:

  • Ts'ehetso bakeng sa litšoaneleho tsa "mohlomong" le "mohlomong" tse khothaletsoang maemong a C++20 e se e kentsoe tšebetsong le ho nolofalloa ka mokhoa o ikhethileng, e lumellang optimizer ho tsebisoa ka monyetla oa hore moaho o hlophisitsoeng o ka hlahisoa (mohlala, “[[mohlomong ]] haeba (ka tšohanyetso> 0) {“).
  • Tšehetso e ekelitsoeng bakeng sa li-processor tsa AMD Zen 3 (-march=znver3), Intel Alder Lake (-march=alderlake) le Intel Sapphire Rapids (-march=sapphirerapids).
  • Tšehetso e ekelitsoeng bakeng sa "-march = x86-64-v[234]" lifolakha ho khetha maemo a x86-64 a meralo (v2 - e akaretsa SSE4.2, SSSE3, POPCNT le CMPXCHG16B extensions; v3 - AVX2 le MOVBE; v4 - AVX-512 ) .
  • Tšehetso e ekelitsoeng bakeng sa li-processor tsa Arm Cortex-A78C (cortex-a78c), Arm Cortex-R82 (cortex-r82), Arm Neoverse V1 (neoverse-v1), Arm Neoverse N2 (neoverse-n2) le Fujitsu A64FX (a64fx). Mohlala, ho nolofalletsa li-CPU tsa Neoverse-V1, o ka hlakisa "-mcpu=neoverse-v1".
  • Bakeng sa meralo ea AArch64, lifolakha tse ncha tsa komporo "-moutline-atomics" le "-mno-outline-atomics" li kentsoe ho thusa kapa ho tima mesebetsi ea mothusi oa ts'ebetso ea athomo, joalo ka "__aarch64_cas8_relax". Lisebelisoa tse joalo li lemoha ka nako ea ho sebetsa hore na tšehetso ea LSE (Large System Extensions) e teng 'me u sebelise litaelo tse fanoeng tsa processor ea athomo kapa u khutlela ho sebelisa LL/SC (Load-link/store-conditional) litaelo bakeng sa ho amahanya.
  • E kenyellelitsoe "-fbinutils-version" khetho ea ho khetha mofuta oa sepheo sa binutils suite bakeng sa ho lumellana le sehokelo sa khale le boits'oaro ba sekopanyi.
  • Bakeng sa lifaele tse ka sebetsoang tsa ELF, ha "-gz" folakha e hlalositsoe, khatello ea tlhaiso-leseling e sebelisang laebrari ea zlib e etsoa ka mokhoa o ikhethileng (gz=zlib). Ho hokahanya lifaele tsa ntho e hlahisoang ho hloka lld kapa GNU binutils 2.26+. Ho khutlisetsa ts'ebelisano le mefuta ea khale ea li-binutils, o ka hlakisa "-gz=zlib-gnu".
  • Sesupa sa 'sena' se se se sebetsoa ka licheke tse sa sebetseng le tse sa amoheloeng (N). Ho tlosa tšobotsi ea nonnull ha o hloka ho sebelisa litekanyetso tsa NULL, o ka sebelisa khetho ea "-fdelete-null-pointer-checks".
  • Sethaleng Linux Bakeng sa meralo ea AArch64 le PowerPC, mokhoa oa "-fasynchronous-unwind-tables" o nolofalitsoe ho hlahisa litafole tsa mohala tse sa phutholohang, joalo ka ho GCC.
  • Ho "#pragma clang loop vectorize_width" e kentse bokhoni ba ho hlakisa likhetho tsa "fixed" (default) le "scalable" ho khetha mokhoa oa vectorization. Mokhoa oa "scalable", o ikemetseng ka bolelele ba vector, ke oa liteko mme o ka sebelisoa ho hardware e tšehetsang vectorization ea scalable.
  • Tšehetso e ntlafalitsoeng ea sethala Windows: Meaho ea semmuso ea binary e se e lokiselitsoe bakeng sa Windows Litsamaisong tsa Arm64, sena se kenyelletsa moqokeleli oa Clang, sehokelo sa LLD, le lilaebrari tsa nako ea ho sebetsa tsa compiler-rt. Ha ho hahoa liforomo tsa sepheo sa MinGW, sehlomathiso sa .exe joale sea eketsoa, ​​esita le ha ho kopanngoa ka ho kopanya.
  • Bokhoni bo amanang le tšehetso ea OpenCL, OpenMP le CUDA bo ekelitsoe. Likhetho tse ekelitsoeng "-cl-std=CL3.0" le "-cl-std=CL1.0" ho khetha likhetho tse kholo bakeng sa OpenCL 3.0 le OpenCL 1.0. Lisebelisoa tsa tlhahlobo li ekelitsoe.
  • Ts'ehetso e ekelitsoeng bakeng sa litaelo tsa HRESET, UINTR, le AVXVNNI tse kentsoeng tšebetsong ho li-processor tse ling tse thehiloeng ho x86.
  • Ho litsamaiso tsa x86, tšehetso bakeng sa khetho ea "-mtune=" e ea sebetsa ", e kenyang ts'ebetso e khethiloeng ea microarchitectural optimizations, ho sa tsotelehe boleng ba "-march= "
  • static analyzer e ntlafalitse ts'ebetso ea mesebetsi e meng ea POSIX mme e ntlafalitse haholo boikemisetso ba sephetho sa ts'ebetso e nang le maemo ha ho na le litekanyetso tse 'maloa tsa tšoantšetso papisong. Licheke tse ncha li ekelitsoe: fuchia.HandleChecker (e hlalosa li-handle ka meaho), webkit.UncountedLambdaCapturesChecker webkit le alpha.webkit.UncountedLocalVarsChecker (e nahanela likarolo tse ikhethang tsa ho sebetsa ka litsupa khoutu ea enjene ea WebKit).
  • Lipolelong tse sebelisoang moelelong oa li-constants, tšebeliso ea mesebetsi e hahelletsoeng __builtin_bitreverse*, __builtin_rotateleft*, __builtin_rotateright*, _mm_popcnt*, _bit_scan_forward, __bsfd, __bsfq, _bit_bit_scan_bsrverse_wapverse, _bsrverse, _bsrverse_wap_wap d, __bswap64, e lumelletsoe __bswapq , _castf*, __rol* le __ror*.
  • E kentse khetho ea BitFieldColonSpacing ho sesebelisoa sa clang-format ho khetha sebaka se potolohileng li-identifiers, likholomo le litlhaloso tsa tšimo.
  • Ka har'a polokelo ea polokelo seva clangd (Clang Server) sethaleng Linux Tšebeliso ea memori nakong ea ts'ebetso ea nako e telele e fokotsehile haholo (mehala ea nako le nako ho malloc_trim e entsoe ho khutlisa maqephe a memori a mahala tsamaisong e sebetsang).

Litlhahiso tsa bohlokoa ho LLVM 12.0:

  • Tšehetso bakeng sa sesebelisoa sa llvm-build build se ngotsoeng ka Python se khaolitse, 'me ho e-na le hoo morero o fetohile ka ho feletseng ho sebelisa mokhoa oa ho haha ​​oa CMake.
  • Karolo e ka morao bakeng sa meralo ea AArch64 e ntlafalitse tšehetso ea sethala. Windows: Ho netefatsoa tlhahiso e nepahetseng ea tlhahiso ea kopano bakeng sa litsamaiso tse reretsoeng Windows, tlhahiso ea data mabapi le "ho lokolla" (ho lokolla) mehala e ntlafalitsoe (boholo ba data e joalo bo fokotsehile ka 60%), bokhoni ba ho theha data e lokollang ho sebelisa litaelo tsa .seh_* assembler bo ekelitsoe.
  • Karolo e ka morao ea meralo ea PowerPC e na le lintlafatso tse ncha bakeng sa loops le ho tsamaisoa ha inline, tšehetso e atolositsoeng bakeng sa li-processor tsa Power10, tšehetso e ekelitsoeng bakeng sa litaelo tsa MMA bakeng sa ho qhekella ha matrix, le tšehetso e ntlafalitsoeng bakeng sa sistimi e sebetsang ea AIX.
  • The x86 backend e eketsa tšehetso bakeng sa li-processor tsa AMD Zen 3, Intel Alder Lake le Intel Sapphire Rapids, hammoho le litaelo tsa processor tsa HRESET, UINTR le AVXVNNI. Tšehetso bakeng sa MPX (Memory Protection Extensions) bakeng sa ho hlahloba lintlha ho netefatsa hore meeli ea memori ha e sa tšehetsoa (theknoloji ena ha e atile ebile e se e tlositsoe ho GCC le clang). Ts'ehetso e ekelitsoeng ho mokopanyi bakeng sa lihlomathiso tsa {disp32} le {disp8} le li-suffixes tsa .d32 le .d8 ho laola boholo ba operand offsets le jumps. E kentse tšobotsi e ncha "tune-cpu" ho laola ho kenyelletsoa ha lintlafatso tse nyane tsa meralo.
  • Mokhoa o mocha oa "-fsanitize=unsigned-shift-base" o kentsoe mochining oa ho hlahloba mathata (integer sanitizer, "-fsanitize=integer") ho bona ho tlala ha linomoro tse sa ngolisoang ka mor'a hore u fetohele ka letsohong le letšehali.
  • Ts'ehetso e ekelitsoeng bakeng sa li-detectors tse fapaneng (asan, cfi, lsan, msan, tsan, ubsan sanitizer) Linux-kabo ka laeborari e tloaelehileng ea Musl.
  • Bokhoni ba ho hokahanya LLD bo atolositsoe. Tšehetso bakeng sa sebopeho sa ELF e ntlafalitsoe, ho kenyeletsoa le ho eketsoa ha likhetho "--dependency-file", "--error-handling-script", "--lto-pseudo-probe-for-profiling", "--no-lto-whole-program-visibility". Tšehetso bakeng sa MinGW e ntlafalitsoe. Bakeng sa sebopeho sa Mach-O (macOS) tšehetso bakeng sa meralo ea arm64, arm, le i386, ntlafatso ea nako ea lihokelo (LTO), le ho phutholoha ha stack nakong ea ts'ebetso ea mekhelo e se e kentsoe tšebetsong.
  • Libc++ e sebelisa likarolo tse ncha tsa maemo a C++20 'me e se e qalile nts'etsopele ea likarolo tsa litlhaloso tsa C++2b. Ts'ehetso e ekelitsoeng bakeng sa moaho o thibelang ts'ehetso ea tikoloho (“-DLIBCXX_ENABLE_LOCALIZATION=OFF”) le lisebelisoa tsa ho hlahisa linomoro tsa pseudo-random (“-DLIBCXX_ENABLE_RANDOM_DEVICE=OFF”).

Source: opennet.ru

Reka sebaka se tšepahalang sa libaka tse nang le ts'ireletso ea DDoS, li-server tsa VPS VDS 🔥 Reka sebaka se tšepahalang sa ho amohela webosaete ka tšireletso ea DDoS, li-server tsa VPS VDS | ProHoster