Itusilẹ ti LLVM 13.0 alakojo suite

Lẹhin oṣu mẹfa ti idagbasoke, itusilẹ ti iṣẹ akanṣe LLVM 13.0 ni a gbekalẹ - ohun elo irinṣẹ ibaramu GCC (awọn olupilẹṣẹ, awọn olupilẹṣẹ ati awọn olupilẹṣẹ koodu) ti o ṣajọ awọn eto sinu bitcode agbedemeji ti RISC-bii awọn ilana foju (ẹrọ foju ipele kekere pẹlu kan olona-ipele ti o dara ju eto). Pseudocode ti ipilẹṣẹ le ṣe iyipada nipa lilo olupilẹṣẹ JIT sinu awọn ilana ẹrọ taara ni akoko ipaniyan eto.

Awọn ilọsiwaju ni Clang 13.0:

  • Atilẹyin imuse fun awọn ipe iru ti o ni idaniloju (pipe subroutine kan ni ipari iṣẹ kan, ti o ṣe atunṣe iru kan ti subroutine ba pe funrararẹ). Atilẹyin fun awọn ipe iru ti o ni ẹri ti pese nipasẹ “[[clang :: musttail]]” abuda ni C ++ ati “__attribute__((musttail))” ni C, ti a lo ninu alaye “pada”. Ẹya naa ngbanilaaye lati ṣe awọn iṣapeye nipa gbigbe koodu sinu aṣetunṣe alapin lati ṣafipamọ agbara akopọ.
  • "lilo" awọn ikede ati awọn amugbooro idile n pese atilẹyin fun asọye awọn ẹya ara C ++ 11 nipa lilo ọna kika "[[]]".
  • Ṣe afikun asia "-Wreserved-identifier" lati ṣe afihan ikilọ kan nigbati o ba pato awọn idamọ ti o wa ni ipamọ ni koodu olumulo.
  • Ṣe afikun awọn asia "-Wunused-but-set-parameter" ati "-Wunused-but-set-variable" lati ṣe afihan ikilọ kan ti a ba ṣeto paramita tabi oniyipada ṣugbọn kii ṣe lilo.
  • Fikun asia "-Wnull-pointer-iyokuro" lati fun ikilọ ti koodu naa le ṣe agbekalẹ ihuwasi aisọye nitori lilo itọka asan ni awọn iṣẹ iyokuro.
  • Ṣafikun asia “-fstack-usage” lati ṣe ipilẹṣẹ fun faili koodu kọọkan afikun “.su” faili ti o ni alaye ninu nipa iwọn awọn fireemu akopọ fun iṣẹ kọọkan ti a ṣalaye ninu faili ti n ṣiṣẹ.
  • A ti ṣafikun iru iṣẹjade tuntun si olutọpa aimi - “sarif-html”, eyiti o yori si iran ti awọn ijabọ ni nigbakannaa ni awọn ọna kika HTML ati Sarif. Ṣe afikun ayẹwo allocClassWithName tuntun. Nigbati o ba n ṣalaye aṣayan “-analyzer-display-progress”, akoko itupalẹ ti iṣẹ kọọkan yoo han. Oluyanju ijuboluwoye ọlọgbọn (alpha.cplusplus.SmartPtr) ti fẹrẹ ṣetan.
  • Awọn agbara ti o ni nkan ṣe pẹlu atilẹyin OpenCL ti pọ si. Atilẹyin ti a ṣafikun fun awọn amugbooro tuntun cl_khr_integer_dot_product, cl_khr_extended_bit_ops, __cl_clang_bitfields ati __cl_clang_non_portable_kernel_param_types. Imuse ti OpenCL 3.0 sipesifikesonu ti tẹsiwaju. Fun C, OpenCL 1.2 sipesifikesonu jẹ lilo nipasẹ aiyipada ayafi ti ẹya miiran ti yan ni kedere. Fun C++, atilẹyin fun awọn faili pẹlu itẹsiwaju ".clcpp" ti ni afikun.
  • Atilẹyin fun awọn itọsọna iyipada loop (“#pragma omp unrol” ati “#pragma omp tile”) ti ṣalaye ni sipesifikesonu OpenMP 5.1 ti ni imuse.
  • Awọn aṣayan ti a ṣafikun si IwUlO ọna kika idile: SpacesInLineCommentPrefix lati ṣalaye nọmba awọn aaye ṣaaju awọn asọye, IndentAccessModifiers, LambdaBodyIndentation ati PPIndentWidth lati ṣakoso titete awọn titẹ sii, awọn ikosile lambda ati awọn itọsọna iṣaaju. Awọn aye fun tito lẹsẹsẹ awọn faili akọsori (SortIncludes) ti gbooro sii. Atilẹyin ti a ṣafikun fun tito akoonu awọn faili JSON.
  • Apa nla ti awọn sọwedowo tuntun ti ṣafikun si linter clang-tidy.

Awọn imotuntun bọtini ni LLVM 13.0:

  • A ti fi aṣayan "-ehcontguard" kun lati lo imọ-ẹrọ CET (Windows Ìmọ̀ Ẹ̀rọ Ìṣàkóso-Fífẹ̀) fún ààbò ní ìpele ìṣàkóso ìyàsọ́tọ̀ kúrò nínú ṣíṣe àwọn ìgbòkègbodò tí a kọ́ nípa lílo àwọn ọ̀nà ìṣètò ìpadàbọ̀-sí-orí (ROP).
  • Iṣẹ akanṣe-idanwo debuginfo ti ni lorukọmii awọn idanwo-agbelebu-awọn idanwo ati pe a ṣe apẹrẹ lati ṣe idanwo awọn paati lati awọn iṣẹ akanṣe, ko ni opin si alaye n ṣatunṣe aṣiṣe.
  • Eto apejọ n pese atilẹyin fun kikọ ọpọlọpọ awọn pinpin, fun apẹẹrẹ, ọkan pẹlu awọn ohun elo, ati ekeji pẹlu awọn ile-ikawe fun awọn olupilẹṣẹ.
  • Ni ẹhin ẹhin fun faaji AArch64, atilẹyin fun Armv9-A RME (Itẹsiwaju Isakoso Ijọba) ati awọn amugbooro SME (Scalable Matrix Extension) ni imuse ni apejọ.
  • Atilẹyin fun ISA V68/HVX ti ṣafikun si ẹhin fun faaji Hexagon.
  • Ẹhin x86 ti ni ilọsiwaju atilẹyin fun awọn ilana AMD Zen 3.
  • Atilẹyin ti a ṣafikun fun GFX1013 RDNA2 APU si ẹhin AMDGPU.
  • Libc++ ń tẹ̀síwájú láti ṣe àwọn ohun tuntun ti àwọn ìlànà C++20 àti C++2b, títí kan píparí ìkàwé "àwọn èrò". Fún pẹpẹ náà. Windows A ti fi àtìlẹ́yìn kún un fún ètò std::filesystem tí ó dá lórí MinGW. A ti ya àwọn fáìlì àkọlé sọ́tọ̀. , Ati A fi àṣàyàn ìkọ́lé LIBCXX_ENABLE_INCOMPLETE_FEATURES kún un láti mú kí àwọn fáìlì àkọlé tí iṣẹ́ wọn kò pé.
  • Awọn agbara ti LLD linker ti ni ilọsiwaju, ninu eyiti atilẹyin fun awọn ilana Big-endian Aarch64 ti wa ni imuse, ati pe Mach-O backend ti mu wa si ipo ti o fun laaye sisopọ awọn eto deede. Awọn ilọsiwaju ti o nilo lati ṣe asopọ Glibc ni lilo LLD.
  • IwUlO lvm-mca (Itupalẹ koodu Ẹrọ) ti ṣafikun atilẹyin fun awọn ero isise ti o ṣe awọn ilana ni aṣẹ (pipe opo gigun ti superscalar), gẹgẹbi ARM Cortex-A55.
  • Oluyipada LLDB fun pẹpẹ AArch64 n pese atilẹyin ni kikun fun Ijeri Atọka, MTE (MemTag, Ifaagun Tagging Memory) ati awọn iforukọsilẹ SVE. Awọn ofin ti a ṣafikun ti o gba ọ laaye lati di awọn afi si iṣẹ ipin iranti kọọkan ati ṣeto ayẹwo ti ijuboluwole nigbati o n wọle si iranti, eyiti o gbọdọ ni nkan ṣe pẹlu tag to pe.
  • LLDB n ṣatunṣe aṣiṣe ati iwaju iwaju fun ede Fortran - Flang ti ni afikun si awọn apejọ alakomeji ti ipilẹṣẹ nipasẹ iṣẹ akanṣe naa.

orisun: opennet.ru

Ra alejo gbigba igbẹkẹle fun awọn aaye pẹlu aabo DDoS, awọn olupin VPS VDS 🔥 Ra gbigbalejo oju opo wẹẹbu ti o gbẹkẹle pẹlu aabo DDoS, awọn olupin VPS VDS | ProHoster