Scaoileadh sraith tiomsaithe LLVM 13.0

Tar éis sé mhí forbartha, cuireadh scaoileadh an tionscadail LLVM 13.0 i láthair - foireann uirlisí atá comhoiriúnach le GCC (tiomsaitheoirí, optimizers agus gineadóirí cód) a thiomsaíonn cláir i gcód giotán idirmheánach de threoracha fíorúla cosúil le RISC (meaisín fíorúil íseal-leibhéal le a. córas optamaithe illeibhéil). Is féidir an pseudocode a ghintear a thiontú trí úsáid a bhaint as tiomsaitheoir JIT go treoracha meaisín go díreach ag an am a dhéantar an clár.

Feabhsuithe ar Clang 13.0:

  • Tacaíocht curtha i bhfeidhm do ghlaonna ráthaithe eireabaill (fo-ghnáthamh a ghlaoch ag deireadh feidhme, a fhoirmíonn atarlú eireaball má iarrann an fo-ghnáthamh é féin). Soláthraíonn an aitreabúid "[[clang::musttail]]" in C++ agus "__attribute__((musttail))" in C tacaíocht do ghlaonna ráthaithe eireabaill, a úsáidtear i ráiteas "filleadh". Ligeann an ghné duit leas iomlán a bhaint as a chur i bhfeidhm trí chód a imscaradh in atriall comhréidh chun tomhaltas stoic a shábháil.
  • Soláthraíonn dearbhuithe "ag baint úsáide as" agus eisínteachtaí clang tacaíocht chun tréithe stíl C++11 a shainiú ag baint úsáide as an bhformáid "[[]]".
  • Cuireadh an bhratach "-Wreserved-identifier" leis chun rabhadh a thaispeáint nuair a shonraíonn tú aitheantóirí forchoimeádta sa chód úsáideora.
  • Cuireadh bratacha "-Wunused-but-set-parameter" agus "-Wunused-but-set-variable" leis chun rabhadh a thaispeáint má tá paraiméadar nó athróg socraithe ach nach n-úsáidtear é.
  • Cuireadh bratach “-Wnull-pointer-subtraction” leis chun rabhadh a eisiúint dá bhféadfadh an cód iompar neamhshainithe a thabhairt isteach mar gheall ar úsáid pointeoir nialasach in oibríochtaí dealaithe.
  • Cuireadh an bhratach "-fstack-usage" leis chun comhad ".su" breise a ghiniúint do gach cód-chomhad ina mbeidh faisnéis faoi mhéid na bhfrámaí cruachta do gach feidhm atá sainithe sa chomhad atá á phróiseáil.
  • Tá cineál aschuir nua curtha leis an anailísí statach - “sarif-html”, as a leanann giniúint tuarascálacha ag an am céanna i bhformáid HTML agus Sarif. Cuireadh seiceáil nua allocClassWithName leis. Agus an rogha “-analyzer-display-progress” á shonrú, taispeántar am anailíse gach feidhm. Tá an anailíseoir pointeoir cliste (alpha.cplusplus.SmartPtr) beagnach réidh.
  • Leathnaíodh na cumais a bhaineann le tacaíocht OpenCL. Tacaíocht bhreise le haghaidh síntí nua cl_khr_integer_dot_product, cl_khr_extended_bit_ops, __cl_clang_bitfields agus __cl_clang_non_portable_kernel_param_types. Leanadh le cur i bhfeidhm sonraíocht OpenCL 3.0. Maidir le C, úsáidtear an tsonraíocht OpenCL 1.2 de réir réamhshocraithe ach amháin má roghnaítear leagan eile go sainráite. Le haghaidh C++, tá tacaíocht do chomhaid leis an síneadh “.clcpp” curtha leis.
  • Tá tacaíocht do threoracha claochlaithe lúb (“#pragma omp unrol” agus “#pragma omp tile”) atá sainmhínithe i sonraíocht OpenMP 5.1 curtha i bhfeidhm.
  • Roghanna a cuireadh leis an bhfóntas clang-format: SpacesInLineCommentPrefix chun líon na spásanna roimh thuairimí a shainiú, IndentAccessModifiers, LambdaBodyIndentation agus PPIndentWidth chun ailíniú iontrálacha, slonn lambda agus treoracha réamhphróiseálaí a rialú. Méadaíodh na féidearthachtaí maidir le háirimh na gcomhad ceanntásca (SortIncludes) a shórtáil. Tacaíocht bhreise le formáidiú comhaid JSON.
  • Tá cuid mhór de na seiceálacha nua curtha le lintéar clang-slachtmhar.

Príomh-nuálaíochtaí LLVM 13.0:

  • Cuireadh an rogha “-ehcontguard” leis chun teicneolaíocht CET (Teicneolaíocht Forfheidhmithe Sreafa Rialaithe Windows) a úsáid chun cosaint a thabhairt i gcoinne cur i gcrích na n-oibreacha a tógadh ag baint úsáide as teicnící Ríomhchláraithe Dírithe ar Fhilleadh (ROP) ag an gcéim láimhseála eisceachta.
  • Athainmníodh an tionscadal tástála debuginfo mar thrialacha tras-thionscadail agus tá sé deartha chun comhpháirteanna ó thionscadail éagsúla a thástáil, gan a bheith teoranta d'fhaisnéis dífhabhtaithe.
  • Soláthraíonn an córas tionóil tacaíocht chun roinnt dáiltí a thógáil, mar shampla, ceann acu le fóntais, agus an ceann eile le leabharlanna d'fhorbróirí.
  • Sa chúl le haghaidh ailtireacht AArch64, cuirtear tacaíocht do na síntí Armv9-A RME (Síneadh Bainistíochta Réimse) agus SME (Síneadh Maitrís Inscálaithe) i bhfeidhm sa chóimeálaí.
  • Tá tacaíocht do ISA V68/HVX curtha leis an inneall don ailtireacht Heicseagán.
  • Tá tacaíocht fheabhsaithe ag an inneall x86 do phróiseálaithe AMD Zen 3.
  • Tacaíocht bhreise do GFX1013 RDNA2 APU chuig inneall AMDGPU.
  • Leanann Libc++ ag cur gnéithe nua de na caighdeáin C++20 agus C++2b i bhfeidhm, lena n-áirítear an leabharlann “coincheapa” a chur i gcrích. Tacaíocht bhreise do std::córas comhaid don ardán Windows atá bunaithe ar MinGW. Comhaid ceanntásca scartha , Agus . Cuireadh leis an rogha tógála LIBCXX_ENABLE_INCOMPLETE_FEATURES chun comhaid cheanntásc nach bhfuil curtha i bhfeidhm go hiomlán a dhíchumasú.
  • Leathnaíodh cumais nascóirí LLD, ina gcuirtear tacaíocht do phróiseálaithe Aarch64 Big-endian i bhfeidhm, agus tugadh inneall Mach-O go staid a cheadaíonn cláir rialta a nascadh. Áiríodh feabhsuithe is gá chun Glbc a nascadh le LLD.
  • Tá tacaíocht curtha leis ag an bhfóntas llvm-mca (Anailíseoir Cód Meaisín) do phróiseálaithe a fhorghníomhaíonn treoracha in ord (píblíne superscalar in ord), mar an ARM Cortex-A55.
  • Soláthraíonn dífhabhtóir LLDB don ardán AArch64 tacaíocht iomlán do chláir Fíordheimhniú Pointeora, MTE (MemTag, Síneadh Clibeála Cuimhne) agus SVE. Orduithe breise a ligeann duit clibeanna a cheangal le gach oibríocht leithdháilte cuimhne agus seiceáil an pointeoir a eagrú agus tú ag rochtain cuimhne, a chaithfidh a bheith bainteach leis an gclib cheart.
  • Tá an dífhabhtóir LLDB agus an tosaigh don teanga Fortran - Flang curtha leis na tionóil dhénártha a ghin an tionscadal.

Foinse: oscailtenet.ru

Add a comment