Emva kweenyanga ezintandathu zophuhliso
Utshintsho oluphambili ekukhutshweni okutsha kwaba kubandakanywa
- Yongezwe ukukwazi ukubuyisela umthi we-syntax abstract (
AST ) yekhowudi ye-C ++ eyaphukileyo, enokusetyenziswa ukunceda ukuxilonga iimpazamo kwaye inike ulwazi olongezelelweyo kwizinto eziluncedo zangaphandle ezifana ne-clang-tidy kunye ne-clangd. Isici senziwe ngokuzenzakalelayo kwikhowudi ye-C ++ kwaye ilawulwa ngeendlela "-Xclang -f[no-]recovery-ast". - Kongezwe iindlela ezintsha zokuxilonga:
- β-Wpointer-to-int-castβ liqela lezilumkiso malunga nokuphosa izikhombisi kudidi olupheleleyo lwe-int olungahambelani nawo onke amaxabiso anokwenzeka.
- β-Wuninitialized-consst-referenceβ - isilumkiso malunga nokudlula izinto eziguquguqukayo ezingaqaliswanga kwiiparamitha zokusebenza ezamkela iimpikiswano zereferensi kunye nophawu loyelelwano "const".
- "-Wimplicit-const-int-float-conversion" - yenziwe ngesilumkiso esihlala sihleli malunga noguqulo olufihlakeleyo lwenani elipheleleyo kudidi olupheleleyo.
- Kwiqonga le-ARM, imisebenzi ye-C eyakhelwe kumqokeleli inikezelwe (
Izinto zangaphakathi ), endaweni yemiyalelo yevektha esebenzayo Ingalo v8.1-M MVE kunye neCDE. Imisebenzi ekhoyo ichazwa kwiifayile zeheader arm_mve.h ne arm_cde.h. -
Yongeziwe uluhlu olwandisiweyo lweentlobo ezipheleleyo _ExtInt(N), ikuvumela ukuba wenze iindidi ezingezizo iziphindaphindo zamagunya amabini, anokusetyenzwa ngokufanelekileyo kwiFPGA/HLS.Ngokomzekelo , _ExtInt(7) ichaza uhlobo olupheleleyo oluquka amasuntswana asi-7. - Iimakhro ezongeziweyo ezichaza inkxaso yemisebenzi eyakhelwe-ngaphakathi ye-C esekwe kwi-ARM SVE (iScalable Vector Extension) imiyalelo:
__ARM_FEATURE_SVE, __ARM_FEATURE_SVE_BF16,
__ARM_FEATURE_SVE_MATMUL_FP32, __ARM_FEATURE_SVE_MATMUL_FP64,
__ARM_FEATURE_SVE_MATMUL_INT8,
__ARM_FEATURE_SVE2, __ARM_FEATURE_SVE2_AES,
__ARM_FEATURE_SVE2_BITPERM,
__ARM_FEATURE_SVE2_SHA3,
__ARM_FEATURE_SVE2_SM4. Umzekelo, i- __ARM_FEATURE_SVE macro ichazwa xa kusenziwa ikhowudi ye-AArch64 ngokuseta ukhetho lomgca womyalelo "-march=armv8-a+sve". - I-"-O" iflegi ngoku ichongiwe nge-"-O1" yemowudi yokuphucula endaweni ka-"-O2".
- Kongezwe iiflegi ezintsha zokuhlanganisa:
- "-fstack-clash-protection" - yenza ukhuseleko ngokuchasene
Ukudibana kwemfumba kunye nemfumba . - "-ffp-exception-behavior={ignore,maytrap,strict}" - ikuvumela ukuba ukhethe imo yesibambi yangaphandle kumanani amanqaku adadayo.
- "-ffp-model={precise,strict,fast}" -Yenza ufikelelo kuthotho lweenketho ezikhethekileyo kumanani eendawo ezidadayo.
- "-fpch-codegen" kunye "-fpch-debuginfo" ukuvelisa isihloko esihlanganiswe kwangaphambili (PCH) kunye neefayile zezinto ezahlukeneyo zekhowudi kunye ne-debuginfo.
- "-fsanitize-coverage-allowlist" kunye "noluhlu lwe-coverage-coverage-blocklist" ukujonga uluhlu olumhlophe nolumnyama lokujonga uvavanyo.
- β-mtls-size={12,24,32,48}β ukukhetha i-TLS (umsonto wendawo yokugcina) ubungakanani.
- "-menable-extension-extension-extension" ukwenza umfuniselo weRISC-V izandiso.
- "-fstack-clash-protection" - yenza ukhuseleko ngokuchasene
- Imowudi engagqibekanga ye-C yi "-fno-common", evumela ukufikelela okusebenzayo ngakumbi kwiinguqu zehlabathi kwamanye amaqonga.
- Uvimba wemodyuli ongagqibekanga ususiwe ukusuka /tmp ukuya ~/.cache ulawulo. Ukubhala ngaphezulu, ungasebenzisa "-fmodules-cache-path=" iflegi.
- Umgangatho omiselweyo wolwimi lwe-C uhlaziyiwe ukusuka ku-gnu11 ukuya kwi-gnu17.
- Inkxaso eyongeziweyo yolwandiso lwe-GNU C "
asm emgceni Β»ukongeza izihlanganisi. Ulwandiso lusahlalutywa, kodwa aluqwalaselwa nangayiphi na indlela. - Izakhono ezinxulumene nenkxaso ye-OpenCL kunye neCUDA zandisiwe. Inkxaso eyongeziweyo ye-OpenCL 2.0 yokuxilonga ibhloko kunye nokuphunyezwa kweempawu ezintsha ze-OpenMP 5.0.
- Inketho eyongeziweyo ye-IndentExternBlock kusetyenziso lwe-clang-format yokulungelelaniswa ngaphakathi kweebhloko "C" zangaphandle kunye ne-"C++" yangaphandle.
- Umhlalutyi we-static uye waphucula ukuphathwa kwabakhi abazuzwe njengelifa kwi-C ++. Kongezwe iitshekhi ezintsha ze-alpha.core.C11Tshixa kunye ne-alpha.fuchsia.Tshixa ukujonga izitshixo, i-alpha.security.cert.pos.34c ukukhangela ukusetyenziswa okungakhuselekanga kwe-putenv, i-webkit.NoUncountedMemberChecker kunye ne-webkit.RefCntblBaseVirtualDtor ukufumana iintlobo ze-alpha ezingabalekiyo .cplusplus .I-SmartPtr ukukhangela i-null smart pointer dereference.
- Kwi-linter clang-coca
yongezwe inxalenye enkulu yeetshekhi ezintsha. - Iseva ye-clangd caching (i-Clang Server) iphucule ukusebenza kwaye yongeza amandla amatsha okuxilonga.
Siseko
- Inkqubo yokwakha itshintshelwe ekusebenziseni iPython 3. Ukuba iPython 3 ayifumaneki, kunokwenzeka ukubuyisela umva ekusebenziseni iPython 2.
- Isiphelo esingaphambili esinomqokeleli wolwimi lwesiGo (llgo) asiqukwanga ekukhululweni, esinokuhlengahlengiswa kwixesha elizayo.
- Uphawu lwe-vector-function-abi-variant longezwe kwi-intermediate representation (IR) ukuchaza imephu phakathi kwe-scalar kunye nemisebenzi ye-vector ukwenza iifowuni ze-vectorize. Ukusuka kwi-llvm::UHlobo lweVector kukho iindidi ezimbini ezahlukeneyo zevektha llvm::I-FixedVectorType kunye nellvm::ScalableVectorType.
- Isebe esekwe kumaxabiso e-udef kunye nokudlula amaxabiso e-undef kwimisebenzi yethala leencwadi yamkelwa njengokuziphatha okungachazwanga. IN
i-memset/memcpy/memmove ivumela ukudlula izikhombisi ze-undef, kodwa ukuba iparameter enobungakanani nguziro. - I-LLJIT yongeze inkxaso yokwenza ukuqaliswa okumileyo ngokusebenzisa i-LLJIT :: qalisa kunye ne-LLJIT ::i-deinitialize iindlela. Ukukwazi ukongeza amathala eencwadi amileyo kwiJITDylib usebenzisa iklasi yeStaticLibraryDefinitionGenerator iphunyeziwe. Added C API for
ORCv2 (I-API yokwakha abaqulunqi be-JIT). - Inkxaso ye-Cortex-A64, i-Cortex-A34, i-Cortex-A77 kunye ne-Cortex-X78 iprosesa yongezwe ngasemva kwi-architecture ye-AArch1. Iphunyeziwe i-ARMv8.2-BF16 (BFloat16) kunye ne-ARMv8.6-A izandiso, kuquka i-RMv8.6-ECV (i-Enhanced Counter Virtualization), i-ARMv8.6-FGT (I-Fine Grained Traps), i-ARMv8.6-AMU (I-Activity Monitors virtualization) kunye ne-ARMv8.0-DGH (ingcebiso yokuqokelela idatha). Ikhono lokuvelisa ikhowudi yemisebenzi eyakhelwe-ngaphakathi-izibophelelo kwi-SVE imiyalelo ye-vector inikwe.
- Inkxaso ye-Cortex-M55, i-Cortex-A77, i-Cortex-A78 kunye ne-Cortex-X1 iprosesa yongezwe kwi-backend ye-architecture ye-ARM. Ukwandiswa kuphunyeziwe
I-Armv8.6-A Matrix Ukuphindaphinda kunye ne-RMv8.2-AA32BF16 BFloat16. - Inkxaso yokwenziwa kwekhowudi ye-POWER10 processors yongezwe ngasemva kuyilo lwePowerPC. Ukulungiswa kweLoop kwandisiwe kwaye inkxaso yendawo edadayo iphuculwe.
- I-backend ye-RISC-V ye-architecture ivumela ukwamkelwa kweepetshi ezixhasa iiseti zemiyalelo eyandisiweyo yovavanyo engekavunywa ngokusemthethweni.
- I-backend ye-architecture ye-AVR idluliselwe ukusuka kwinqanaba lokulinga ukuya kwi-stable, ifakwe kwi-distribution eyisiseko.
- I-backend ye-x86 ye-architecture ixhasa i-Intel AMX kunye ne-TSXLDTRK imiyalelo. Ukhuseleko olongeziweyo kuhlaselo
I-LVI (I-Load Value Injection), kwaye ikwaphumeza indlela yokuNciphisa i-Speculative Side Side Effect Suppression jikelele ukuvala uhlaselo olubangelwa kukwenziwa kwemisebenzi eqikelelwayo kwi-CPU. - Ngasemva kuyilo lweSystemZ, inkxaso yeMemorySanitizer kunye neLeakSanitizer yongeziwe.
- Inkxaso eyongeziweyo yefayile yeheader enezigxina zezibalo kwiLibc++
. -
Yandisiwe Izakhono zokudibanisa iLLD. Ukuphuculwa kwenkxaso yefomathi ye-ELF, kubandakanywa iinketho ezongezelelweyo "--lto-emit-asm", "--lto-whole-program-visibility", "-print-archive-stats", "-shuffle-sections", " -thinlto-imodyuli enye", "-eyodwa", "-rosegment", "-threads=N". Kongezwe "--time-trace" ukhetho lokugcina umkhondo kwifayile, enokuthi emva koko ihlalutywe nge-chrome://tracing interface kwiChrome.
umthombo: opennet.ru