Sakin saitin mai tarawa na LLVM 13.0

Bayan watanni shida na haɓakawa, an gabatar da ƙaddamar da aikin LLVM 13.0 - kayan aikin GCC mai jituwa (masu haɗawa, masu haɓakawa da janareta na lamba) waɗanda ke tattara shirye-shirye cikin matsakaicin bitcode na RISC-kamar umarnin kama-da-wane (ƙananan injin kama-da-wane tare da Multi-matakin inganta tsarin). Za'a iya canza lambar ƙirar ƙira ta amfani da mai tara JIT zuwa umarnin injin kai tsaye a lokacin aiwatar da shirin.

Haɓakawa a cikin Clang 13.0:

  • Tallafi da aka aiwatar don garantin kiran wutsiya (kiran subroutine a ƙarshen aiki, ƙirƙirar maimaita wutsiya idan subroutine ya kira kanta). Ana bayar da goyan bayan garantin kiran wutsiya ta sifa ta "[[clang:: musttail]]" a cikin C++ da "__attribute__((musttail))" a cikin C, wanda aka yi amfani da shi a cikin bayanin "dawowa". Siffar tana ba ku damar aiwatar da haɓakawa ta hanyar tura lamba cikin juzu'i mai fa'ida don adana yawan amfani.
  • Bayanin "amfani" da kari na dangi suna ba da goyan baya don ayyana sifofin C++11 ta amfani da tsarin "[]".
  • Ƙara alamar "-Wreserved-identifier" don nuna gargadi lokacin da kuka ƙididdige masu ganowa a cikin lambar mai amfani.
  • Ƙara "-Wunused-but-set-parameter" da "-Wunused-but-set-variable" tutoci don nuna faɗakarwa idan an saita siga ko m amma ba a yi amfani da su ba.
  • Ƙara "-Wnull-pointer-subtraction" tuta don bayar da gargadi idan lambar na iya gabatar da halayen da ba a bayyana ba saboda amfani da ma'ana mara kyau a ayyukan ragewa.
  • An ƙara alamar "-fstack-usage" don samar da kowane fayil na lamba wani ƙarin fayil na ".su" mai ɗauke da bayanai game da girman ma'auni na kowane aiki da aka ayyana a cikin fayil ɗin da ake sarrafawa.
  • An ƙara sabon nau'in fitarwa zuwa madaidaicin analyzer - "sarif-html", wanda ke haifar da samar da rahotanni lokaci guda a cikin HTML da Sarif. An ƙara sabon rajistan alloClassWithName. Lokacin ƙayyade zaɓin "-analyzer-display-progress", ana nuna lokacin bincike na kowane aiki. Mai duba mai wayo (alpha.cplusplus.SmartPtr) ya kusan shirya.
  • An faɗaɗa damar damar da ke da alaƙa da tallafin OpenCL. Ƙara goyon baya don sababbin abubuwan haɓaka cl_khr_integer_dot_product, cl_khr_extended_bit_ops, __cl_clang_bitfields da __cl_clang_non_portable_kernel_param_types. An ci gaba da aiwatar da ƙayyadaddun ƙayyadaddun OpenCL 3.0. Don C, ana amfani da ƙayyadaddun ƙayyadaddun OpenCL 1.2 ta tsohuwa sai dai idan an zaɓi wani sigar a sarari. Don C++, an ƙara goyan bayan fayiloli tare da tsawo ".clcpp".
  • An aiwatar da goyan bayan umarnin sauya madauki (“#pragma omp unrol” da “#pragma omp tile”) da aka ayyana a cikin ƙayyadaddun ƙayyadaddun OpenMP 5.1.
  • Zaɓuɓɓuka da aka ƙara zuwa tsarin amfani na dangi: SpacesInLineCommentPrefix don ayyana adadin sarari kafin sharhi, IndentAccessModifiers, LambdaBodyIndentation da PPIndentWidth don sarrafa daidaitawar shigarwar, maganganun lambda da umarnin mai gabatarwa. An faɗaɗa yuwuwar rarrabuwar ƙidayar fayilolin kan kai (Nau'in Ciki). Ƙara goyon baya don tsara fayilolin JSON.
  • An ƙara wani babban yanki na sabbin cakuɗe-kuɗe zuwa linter clang-tdy.

Mabuɗin sabbin abubuwa a cikin LLVM 13.0:

  • An ƙara zaɓin "-ehcontguard" don amfani da fasahar CET (Fasahar Gudanarwar Gudanarwar Gudanarwar Windows) don karewa daga aiwatar da ayyukan da aka gina ta amfani da dabarun Komawa-daidaitacce (ROP) a keɓan matakin kulawa.
  • An sake canza aikin gwajin-debuginfo-gwajin giciye-gwajin-gwaji kuma an tsara shi don gwada abubuwan da aka gyara daga ayyuka daban-daban, ba'a iyakance ga ɓarna bayanai ba.
  • Tsarin taro yana ba da tallafi don gina rarrabawa da yawa, misali, ɗaya tare da kayan aiki, ɗayan kuma tare da ɗakunan karatu don masu haɓakawa.
  • A cikin bangon baya don gine-ginen AArch64, ana aiwatar da tallafi ga Armv9-A RME (Extension Management Realm) da SME (Scalable Matrix Extension) a cikin mai tarawa.
  • An ƙara goyan bayan ISA V68/HVX zuwa bangon baya don gine-ginen Hexagon.
  • Ƙarshen x86 ya inganta tallafi ga masu sarrafawa na AMD Zen 3.
  • Ƙara goyon baya don GFX1013 RDNA2 APU zuwa AMDGPU baya.
  • Libc++ ya ci gaba da aiwatar da sabbin fasalulluka na ka'idojin C++20 da C++2b, gami da kammala ɗakin karatu na "ra'ayoyi". Ƙara goyon baya don std :: tsarin fayil don dandalin Windows na tushen MinGW. Fayilolin taken , da sun rabu. Ƙara wani zaɓi na ginawa LIBCXX_ENABLE_INCOMPLETE_FEATURES don musaki fayilolin taken ba tare da cikakken aiwatar da ayyuka ba.
  • An faɗaɗa ƙarfin haɗin haɗin LLD, wanda aka aiwatar da tallafi ga manyan na'urori na Big-endian Aarch64, kuma an kawo ƙarshen Mach-O zuwa yanayin da ke ba da damar haɗa shirye-shirye na yau da kullun. Haɗe da haɓakawa da ake buƙata don haɗa Glibc ta amfani da LLD.
  • Llvm-mca (Machine Code Analyzer) mai amfani ya ƙara tallafi ga masu sarrafawa waɗanda ke aiwatar da umarni bisa tsari (bututun da ke cikin tsari mai ƙarfi), kamar ARM Cortex-A55.
  • Mai gyara LLDB don dandamali na AArch64 yana ba da cikakken goyan baya don Tabbatar da Nuni, MTE (MemTag, Ƙwararren Ƙwararren Ƙwararren Ƙwararren Ƙwararren Ƙwararren Ƙwararren Ƙwararren Ƙwararren Ƙwararren Ƙwararren Ƙwararren Ƙwaƙwalwa ) da SVE. Ƙara umarni waɗanda ke ba ka damar ɗaure tags zuwa kowane aiki na rarraba ƙwaƙwalwar ajiya da tsara duban mai nuni lokacin samun damar ƙwaƙwalwar ajiya, wanda dole ne a haɗa shi da madaidaicin alamar.
  • LLDB debugger da gaban gaba don yaren Fortran - Flang an ƙara su zuwa majalisun binaryar da aikin ya samar.

source: budenet.ru

Add a comment