Ho lokolloa ha LLVM 13.0 compiler suite

Kamora likhoeli tse ts'eletseng tsa nts'etsopele, ho hlahisoa tokollo ea projeke ea LLVM 13.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 13.0:

  • Li-call tse netefalitsoeng (ho letsetsa subroutine qetellong ea ts'ebetso, ho theha poeletso ea mohatla haeba subroutine e ipitsa) e tšehetsoa. Mehala e netefalitsoeng e tšehetsoa ho sebelisoa "[[clang::musttail]]" tšobotsi ho C++ le "__attribute__((musttail))" ho C, e sebelisitsoeng polelong ea "return". Ts'ebetso ena e etsa hore lintlafatso li sebelisoe ka khoutu e hlahang ka mokhoa o bataletseng ho boloka sebaka sa stack.
  • Litlhaloso tsa mofuta oa C++11 li se li tšehetsoa ho clang "using" liphatlalatso le likeketso, ho sebelisoa sebopeho sa "[[]]".
  • E kentse folakha ea "-Wreserved-identifier" ho hlahisa temoso ha ho hlakisoa li-identifiers tse boloketsoeng khoutu ea mosebelisi.
  • E kentse "-Wunused-but-set-parameter" le "-Wunused-but-set-variable" lifolakha ho hatisa temoso haeba paramethara kapa phetoho e behiloe empa e sa sebelisoe.
  • E kentse folakha ea "-Wnull-pointer-subtraction" ho lemosa haeba khoutu e ka lebisa boitšoarong bo sa hlalosoang ka lebaka la tšebeliso ea null pointer mesebetsing ea ho ntša.
  • E kentse folakha ea "-fstack-usage" ho hlahisa faele e 'ngoe le e 'ngoe ea khoutu faele ea ".su" e nang le tlhahisoleseding e mabapi le boholo ba liforeimi tsa stack bakeng sa mosebetsi o mong le o mong o hlalositsoeng faeleng e ntseng e sebetsoa.
  • Mofuta o mocha oa tlhahiso o kentsoe ho static analyzer — "sarif-html", e fellang ka hore ho thehoe litlaleho ka lifomate tsa HTML le tsa Sarif. Cheke e ncha e kentsoe allocClassWithName. Ha u hlakisa khetho ea "-analyzer-display-progress", nako ea tlhahlobo ea ts'ebetso e 'ngoe le e' ngoe e hlahisoa. Smart pointer analyzer (alpha.cplusplus.SmartPtr) e se e batla e lokile.
  • Bokhoni bo atolositsoeng bo amanang le tšehetso ea OpenCL. Ts'ehetso e ekelitsoeng bakeng sa likeketso tse ncha cl_khr_integer_dot_product, cl_khr_extended_bit_ops, __cl_clang_bitfields le __cl_clang_non_portable_kernel_param_types. Ts'ebetsong e tsoelang pele ea litlhaloso tsa OpenCL 3.0. Bakeng sa C, tlhaloso ea OpenCL 1.2 e sebelisoa ka mokhoa oa kamehla, ntle le haeba ho khethiloe mofuta o mong ka ho hlaka. Bakeng sa C++, tšehetso e ekelitsoeng bakeng sa lifaele ka ".clcpp" katoloso.
  • Tšehetso bakeng sa litaelo tsa phetoho ea loop ("#pragma omp unrol" le "#pragma omp tile") e hlalositsoeng ho litlhaloso tsa OpenMP 5.1 e kentsoe tšebetsong.
  • Sesebelisoa sa clang-format se ntlafalitsoe ka likhetho tse latelang: SpacesInLineCommentPrefix ho fumana palo ea libaka pele ho maikutlo, IndentAccessModifiers, LambdaBodyIndentation, le PPIndentWidth ho laola ho tsamaisana ha lirekoto, mantsoe a lambda, le litaelo tsa preprocessor. Bokhoni ba ho hlophisa lethathamo la lifaele tsa lihlooho (SortIncludes) bo ekelitsoe. Ts'ehetso ea ho fometa lifaele tsa JSON e kentsoe.
  • Sehlopha se seholo sa licheke tse ncha li kentsoe letlapeng la clang-tidy.

Litlhahiso tsa bohlokoa ho LLVM 13.0:

  • Добавлена опция «-ehcontguard» для использования технологии CET (Windows Control-flow Enforcement Technology) для защиты на этапе обработки исключений от выполнения эксплоитов, построенных с использованием приёмов возвратно-ориентированного программирования (ROP, Return-Oriented Programming).
  • Morero oa debuginfo-test o rehiloe lebitso la liteko tsa projeke e fapaneng 'me o etselitsoe ho leka likarolo tsa merero e fapaneng, ha e felle feela boitsebisong ba ho lokisa liphoso.
  • Sistimi ea kaho e fana ka ts'ehetso bakeng sa ho aha likabo tse ngata, mohlala, e 'ngoe e na le lisebelisoa, e ngoe e na le lilaeborari tsa bahlahisi.
  • Karolo e ka morao ea meralo ea AArch64 e sebelisa ts'ehetso bakeng sa likeketso tsa Armv9-A RME (Realm Management Extension) le SME (Scalable Matrix Extension) ho sekopanyi.
  • Tšehetso bakeng sa ISA V68/HVX e kenyelelitsoe mokokotlong oa kaho ea Hexagon.
  • The x86 backend e ntlafalitse tšehetso bakeng sa li-processor tsa AMD Zen 3.
  • Tšehetso e ekelitsoeng bakeng sa GFX1013 RDNA2 APU ho AMDGPU backend.
  • В Libc++ продолжена реализация новых возможностей стандартов C++20 и C++2b, в том числе завершена реализация библиотеки «concepts». Для платформы Windows на базе MinGW добавлена поддержка std::filesystem. Разделены заголовочные файлы <algorithm>, <iterator> и <utility>. Добавлена сборочная опция LIBCXX_ENABLE_INCOMPLETE_FEATURES для отключения заголовочных файлов с не полностью реализованной функциональностью.
  • Sehokelo sa LLD se atolositsoe ho ts'ehetsa li-processor tsa Big-endian Aarch64, mme backend ea Mach-O e ntlafalitsoe ho lumella khokahano ea mananeo a tloaelehileng. Lintlafatso tse hlokahalang bakeng sa ho hokahanya Glibc ho sebelisa LLD li kenyelelitsoe.
  • Sesebelisoa sa llvm-mca (Mochine Code Analyzer) se ntlafalitsoe ho ts'ehetsa li-processor tsa liphaephe tsa superscalar tse kang ARM Cortex-A55.
  • LLDB debugger bakeng sa sethala sa AArch64 joale se tšehetsa ka botlalo Tiiso ea Pointer, mochini oa MTE (MemTag, Memory Tagging Extension), le lirejisete tsa SVE. Litaelo li kenyellelitsoe ho tlama li-tag ts'ebetsong e 'ngoe le e' ngoe ea kabo ea memori le ho hlahloba sesupo ha u fihlella memori, e tlamehang ho tlamelloa ho tag e nepahetseng.
  • LLDB debugger le Fortran frontend Flang li kenyellelitsoe likopanong tsa binary tse hlahisoang ke morero.

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