Dimittis de GCC 12 compilator suite

Post annum evolutionis, compilator GCC 12.1 liber emissus est, prima significativa emissio in novo GCC 12.x ramo. Iuxta novam remissionem numerandi schema, versio 12.0 in processu evolutionis adhibita et paulo ante emissio GCC 12.1, ramus GCC 13.0 iam ramosus erat, ex quo altera maior emissio, GCC 13.1, esset. formari. Die XXIII mensis Maii inceptum celebrabit 23 annos ex institutione primae GCC editionis.

Major changes:

  • Subsidiis additis pro CTF (Pact Type Format) debugging format, quae praebet compacta informationum de C generibus, nexus inter functiones et symbola debugging. Cum in obiectis ELF infixa, forma permittit usum tabularum characteris efl ad vitandam data duplicationem.
  • Firmamentum "STABS" debugging informationes repositionis forma, in annis 1980 creata, deprecata est.
  • Opus augere pergit subsidia futurae C2X et C++23 signa pro C et C++ linguarum. Exempli gratia, subsidium "si consteval" dictio adiecta est; auto(g()))") uti liceat, auto in functionibus argumentis uti ("f(auto(g)))"); usus variabilium non literalium, gata et pittacia permittuntur in functionibus ut constexpr declaratis; fulcimentum additum pro multidimensionali operatorium indice operator[]; in si, pro et switch, capae initializationis caudices dilatatae sunt ("pro (utendo T = int; T e : v)").
  • The C++ Standard Library has improved support for the experimental section of C++ 20 et C++23 signis. Auxilia additae pro std ::move_only_functioni, , std :: basic_string :: resize_and_overwrite, , and std::invoke_r. Liceat uti std :: singulare_ptr, std ::vector, std :: basic_string, std :: libitum et std :: variant in functionibus constexpr.
  • The Fortran frontend full supported for the TS 29113 specification, which describes capability ad praestandi portabilitatem inter Fortran et C codicem.
  • Auxilia addita pro __builtin_shufflevector(vec1, vec2, index1, index2, ...) extensio antea addita Clang, quae unicam vocationem praebet ad communes vectores versas et versas operationes faciendas.
  • Cum "-O2" gradu optimizationis utendo, vectorizationis est facultas per defaltam (the -ftree-vectorize et -vect-cost-exemplum = modi vilibus admodum capacibus). Exemplar valde vile vectorizationem permittit tantum, si vector codicem vectorizatum scalari in totum reponere potest.
  • Addidit "-ftrivial-auto-var-init" modus ad explicandum initializationem variabilium expressam in ACERVUS ad quaestiones investigandas et vulnerabilitates obstantias cum usu variabilium inextinctarum.
  • Pro C et C ++ linguarum constructio in functione dynamica-objectiva addita est ad magnitudinem obiecti determinandam, compatibilis cum simili functione e Clang.
  • Pro linguis C et C ++, subsidium attributi "inaccessibile" additum est (exempli gratia, functiones notare potes quae errorem generabunt si illis uti conaris).
  • Pro C et C ++ linguarum subsidium ad praescriptiones "#elifdef" et "#elifndef" praecedens additae sunt.
  • Vexillum "-Wbidi-chars" adiecit ad admonitionem exhibendam si characteres UTF-8 perperam adhibeantur, mutato ordine quo textus bidirectionalis ostenditur.
  • Addidit vexillum "-Warray-compare" monere cum operanda duo comparare quae ad vestes referuntur.
  • Exsecutio OpenMP 5.0 et 5.1 (Open Multi-Processing) signa, quae definiunt API et methodos applicandi rationes programmandi parallelos in multi-core et hybridorum (CPU+GPU/DSP) systemata cum unitatibus communibus memoria et vectorizatione (SIMD) continuavit.
  • Melior exsecutio OpenACC 2.6 specificatio programmandi parallela, quae instrumenta definit ad operationes offloading in GPUs et processores speciales sicut NVIDIA PTX.
  • Auxilia ad instructiones extensas Intel AVX86-FP512 et genus _Float16 in codice generationi backend pro architectura x16 additum est.
  • Ad architecturae x86, tutelae contra vulnerabilitates in processoribus additae sunt, quas speculativas mandatorum executiones post absolutas operationes saliendi progressus est. Problema occurrit ex processui instructionum prae-emptivo statim sequentes ramum instructionem in memoria (SLS, Linea Speculationis rectae). Ad tutelam recipiendam, optio "-mharden-sls" proponitur.
  • Deprehensio usu variabilium variabilium ad experimentalem analysris stati addita est. Addidit subsidium initiale ad codicem conventum examinandum in lineis insertis. Meliorem memoriam sequi. Codex ad expressiones transitum dispensandae renovatum est.
  • Adiectae 30 novae vocat ad libgccjit, bibliothecam communicatam ut codicem generantis in alias processus emendare et ea uti ad JIT componendi bytecode in codicem apparatus.
  • Support pro CO-RE (Compile Quondam - Curre Ubique) mechanismus addita est ad tergum pro bytecode generandi BPF, quod sinit te codicem programmatum eBPF pro Linux nucleo semel tantum exarare et utere speciali oneratus universali qui adaptat. onusta programma ad nucleum currentem et BPF Types Format). CO-RE quaestionem de programmatibus portabilitate compilatarum eBPF solvit, quae antea nonnisi in versione nuclei usus erat pro qua exarata erant, quia positio elementorum in structurarum notitiarum a versione in versionem mutat.
  • RISC-V backend subsidia addit ad novas institutiones extensiones architecturae positae zba, zbb, zbc et zbs, necnon ISA extensiones vectoris et operationes cryptographicae scalares. Defalta, subsidia pro RISC-V ISA 20191213 specificatio provisa est, vexillum -mtun=thead-c906 additum est ut optimizationes pro T-CAD c906 coros.
  • Subsidium pro __int128_t/integro(genus=16) typo additum est ad codicem generationis backend pro AMD GPUs innixum in microarchitectura GCN. Fieri potest ut usque ad 40 circulos laboris per unitatem computando (CU) et usque ad 16 frontibus instruc- tionibus (fluctuum, statuto staminum in parallelis per globum confectorum) per globum SIMD. Antea una tantum instructio ore per CU concessum erat.
  • NVPTX tergum, codicem generandi utens NVIDIA PTX (Parallel Thread Executionis) instructionem architecturae posuit, facultatem utendi vexillis "-marchi", "-mptx" et "march-map" utendi addidit. Firmamentum impletum est pro PTX ISA sm_53, sm_70, sm_75 et sm_80. Defectus architecturae sm_30.
  • Exsecutiones in munerum aedificatis rescriptae sunt in tergum pro PowerPC/PowerPC64/RS6000 processuum. Constructum in munerum __structin_texasr, constructum texasru, constructum get_tfhar, aedificatum est, __builtinset_texasr, constructum set_texasru, aedificatum est documentum.
  • Support for Arm Ampere-64 (-mcpu/-mtune ampere1), Arm Cortex-A1 (cortex-a510), Brachium Cortex-A510 (cortex-a710) and Brachium Cortex-X710 (cortex- x2). ARMv2 subsidia novarum architecturae optionum ad usum cum "-march" optione addidit: armv8-a, armv8.7-a, armv8.8-a. Exsecutio C functionum in compilator (intrinsica) constructa addita pro notitia atomica et salutaris in memoriam, secundum instructionum ARM extensorum usum (ls9). Auxilia additae ad accelerandum memcpy, memmovendum et memset functiones utentes extensione mopsoptionis ARM.
  • Novam recognitionis modum addidit "-fsanitize=shadow-call-stack" (ShadowCallStack), quae nunc tantum praesto est pro architectura et operibus AArch64 in codice aedificando cum optione "-r18". Modus defensionem praebet contra scripturam reditus inscriptionis ex functione in eventu quiddam redundantia in ACERVUS. Essentia tutelae est servare reditum electronicum in separato "umbra" acervo postquam imperium ad munus transfert et hanc inscriptionem restituens priusquam munus exeunt.

Source: opennet.ru