ืืืืจ ืฉื ื ืฉื ืคืืชืื
GCC 10.1 ืืืื ืืืืฉืื ืฉื ืืืืืฉืื ืจืืื ืืฉืคืช C++ ืฉืคืืชืื ืขืืืจ ืชืงื C++20, ืฉืืคืืจืื ืืงืฉืืจืื ืืชืงื ืฉืคืช C ืืขืชืืื (C2x), ืืืคืืืืืืฆืืืช ืืืฉืืช ื-backends ืืืืจ ืืชืืืื ื ืืกืืื ืืช
ืืขืืงืจื
-
ื ืืกืฃ ืืืคื ื ืืกืื ืฉื ื ืืชืื ืกืืื"-ืืขืจืืฅ ", ืืืืฆืขืช ื ืืชืื ืืื-ืคืจืืฆืืืจืื ืขืชืืจ ืืฉืืืื ืฉื ื ืชืืื ืืืฆืืข ืงืื ืืืจืืืืช ื ืชืื ืื ืืชืืื ืืช. ืืืฆื ืืกืืื ืืืืืช ืืขืืืช ืืฉืื ืืงืืืคืืืฆืื, ืืืื ืงืจืืืืช ืืคืืืืช ืืคืื ืงืฆืืืช free() ืขืืืจ ืืืืจ ืืืืจืื ืืื, ืืืืคืืช ืฉื ืืชืืจ ืงืืฆืื, ื ืืชืืง ืืืขืืจืช ืืฆืืืขื null, ืืืฉื ืืืืืงืื ืฉื ืืืืจืื ืืฉืืืจืจืื, ืฉืืืืฉ ืืขืจืืื ืื ืืืืชืืืื ืืื'. ืืฉืืืืฉ ืืืฆื ืืืืฉ ืืงืื OpenSSL ืืืจ ืืืคืฉืจ ืืืืืชืคืืืขืืช ืืกืืื ืช . - ืืืคืืืืืืฆืืืช ืืื-ืืืืืื ืืฉืืคืจืืช. ืืจืืืก IPA-SRA (Interprocedural Scalar Shared Replacement) ืขืืฆื ืืืืฉ ืื ืฉืืขืืื ืืืื ืงืฉืืจื, ืืืื ืืืชืจ ืืกืืจ ืืขืช ืขืจืืื ืืืืฉืืื ืืืืืืจืื ืฉืืื ื ืืฉืืืืฉ. ืืืฆื ืืืืคืืืืืืฆืื "-O2", ืืคืฉืจืืช "-finline-functions" ืืืคืขืืช, ืืฉืจ ืืืืื ื ืช ืืืืฉ ืืื ืืืขืืืฃ ืงืื ืงืืืคืงืื ืืืชืจ ืขื ืคื ื ืืืฆืืขื ืืืฆืืข. ืืขืืืื ืฉื ืืืืืจืืกืืืงื ืืคืจืืกืช ืคืื ืงืฆืืืช ืืืืืขืืช ืืืืฆื. ืืืืจืืกืืืงื ืฉื ืืจืืื ืืืืืขืช ืืฉืืืื ืคืื ืงืฆืืืช ืืืืื ืืขืช ืืืฉืชืืฉ ืืืืืข ืขื ืืืืื ืขืจืืื ืืื ืืืืืช ืืช ืืืขืืืืช ืฉื ืืจื ืกืคืืจืืฆืืืช ืืืืืืช. ืขืืืจ C++, ืืืืืง ืฉื ื ืืชืื ืืื ืื ืืืืกืก ืืืคืืก ืฉืืคืจ.
- ืืืคืืืืืืฆืืืช ืฉื ืืื ืงืืฉืืจ ืืฉืืคืจืืช (LTO). ื ืืกืฃ ืงืืืฅ ืืคืขืื ืืืฉ
ืืืจืืง ืืื ืืืคืก ืืืืข ืขื ืงืืฆื ืืืืืืงื ืขื LTO bytecode. ืืขืืจื LTO ืืงืืืืื ืงืืืขืื ืืืืืืืืช ืืช ืืกืคืจ ืืฉืืืืช ืืืืฆืืข ืืคืืขืืืช ืื-ืืื ืืช, ืืื ืื ื ืืชื ืืงืืืข ืืืชื, ืืฉืชืืฉ ืืืืืข ืขื ืืกืคืจ ืืืืืช ื-CPU ืืืืจื ืืงืืืื. ื ืืกืคื ืืช ืืืืืืช ืืืืืก LTO bytecode ืืืืฆืขืืช ืืืืืจืืชื zstd. - ืฉืืคืจ ืื ืื ืื ืืืืคืืืืืืฆืื ืืืืืกืก ืขื ืชืืฆืืืช ืคืจืืคืื ืงืื (PGO โ Profile-guided Optimization) ืืฉืจ ืืืืฆืจ ืงืื ืืืคืืืืื ืืืชืจ ืขื ืกืื ื ืืชืื ืืืคืืื ื ืืืฆืืข ืืงืื. ืชืืืืงืช ืคืจืืคืื ืืฉืืคืจืช ืืืืื ืืืืืจ ืืืคืจืืช ืงืื ืื/ืงืจ. ืืจื ืืืคืฉืจืืช "
-fprofile-values ยป ืืืื ืืขืช ืื ืืจ ืขื 4 ืขืจืื ืคืจืืคืื, ืืืฉื ืืฉืืืืช ืขืงืืคืืช ืืืกืคืง ืืืืข ืืืืืง ืืืชืจ ืขื ืืคืจืืคืื. - ืืคืจื ืชืื ืืช ืืงืืื ืืืืฉื ืขืืืจ ืฉืคืืช C, C++ ื-Fortran
OpenACC 2.6 , ืืืืืืจ ืืืื ืืืืจืืช ืคืขืืืืช ืขื GPUs ืืืขืืืื ืืืืืืื ืืืื NVIDIA PTX. ืืืฉืื ืืชืงื ืืืขื ืืืฉืืืคืชื ืืช MP 5.0 (Open Multi-Processing), ืืืืืืจ ืืช ื-API ืืฉืืืืช ืืืืฉืื ืฉืืืืช ืชืื ืืช ืืงืืืืืช ืขื ืืขืจืืืช ืืจืืืืช ืืืืืช ืืืืืจืืืืืช (CPU+GPU/DSP) ืขื ืืืืจืื ืืฉืืชืฃ ืืืืืืืช ืืงืืืจืืืฆืื (SIMD). ื ืืกืคื ืชืืื ืืช ืืื lastprivate conditionals, ืื ืืืืช ืกืจืืงื ืืืืืื, ืืืืืื order and use_device_addr. ืขืืืจ OpenMP ื-OpenACC, ื ืืกืคื ืชืืืื ืืคืขืืืืช ืืืจืื ืืืขืืื ืืจืคื AMD Radeon (GCN) ืืืืืจ ืืจืืืขื (ืคืื'ื) ื-GPU (VEGA 10/VEGA 20). - ืขืืืจ ืฉืคืืช ืืืฉืคืืช C, ื ืืกืคื ืืคืื ืงืฆืื "ืืืฉื" ืืื ืืชืืจ ืืช ืืืืฉื ืฉื ืืคืื ืงืฆืื ืืืืืืืงืืื ืืืืขืืจืื ืืืืฆืขืืช ืืคื ืื ืื ืืฆืืืข, ืืืื ืืฉืืื ืืืืืืงืืื ืืืื ืืืจืืืื ืืื ืฉืืืื ืืืืืืื ืืืืข ืขื ืืืื ืืืืืืืงืืื. ืืื ืืขืืื ืืฉืืืื ืขื "ืืืฉื", ืชืืื ืช "ืกืื" ืืืืฉืืช ืืื ืืืืืช ืืืฉื ืฉืืืื ืืคืื ืงืฆืืืช ืืฉืชืืฉ, ืืืฉื, ืืขืช ืืชืืืช ืขืจืืื ืืืืืจ ืืืืฅ ืืืืืืืช ืืืขืจื. ื ืืกืคื ืื ืืชืืื ื "symver" ืืฉืืื ืกืืืื ืืงืืืฅ ELF ืืืกืคืจื ืืจืกืืืช ืกืคืฆืืคืืื.
- ืืืืจืืช ืืืฉืืช ื ืืกืคื:
- "-Wstring-compare" (ืืืคืขื ืขื "-Wextra") - ืืชืจืืข ืขื ื ืืืืืชื ืฉื ืืืืืืื ืฉืืื ืืคืก ืืืฉืืื ืืชืืฆืื ืฉื ืงืจืืื ืืคืื ืงืฆืืืช strcmp ื-strncmp, ืืืงืืืื ืืงืืืข ืืฉื ืืขืืืื ืฉืืืืจื ืฉื ืืจืืืื ื ืืื ืืืื ืืืืื ืืืขืจื ืืืจืืืื ื ืืฉื ื.
- "-Wzero-length-bounds" (ืืืคืขื ืขื "-Warray-bounds") - ืืชืจืืข ืขื ืืืฉื ืืจืืืื ืืขืจื ืืืืจื ืืคืก, ืื ืฉืขืืื ืืืืืื ืืืืืคืช ื ืชืื ืื ืืืจืื.
- ืืืืืจืืช "-Warray-bounds", "-Wformat-overflow", "-Wrestrict", "-Wreturn-local-addr" ื-"-Wstringop-overflow" ืืืจืืื ืืื ืืืจืืื ืืช ืืกืคืจ ืืืฆืืื ืืืืฅ ืืชืืื. ืฉืืืืคืืื.
- ืืืืืข ืืช ืืืืืืช ืืฆืืื ืืฉืืจืืช ืชืืืื ืจืืืื ืืืืืื ืืืืฆืขืืช ืืงืืืื ืื ืืืื (UTF-8 ืืืจืืจืช ืืืื) ืืืงืื ืกืืืื UCN (\uNNNN ืื \UNNNNNNNNN). ืืืืืื:
ืกืืื const int ฯ = 3;
int get_naรฏve_pi() {
ืืืืจ ฯ;
} - ืขืืืจ ืฉืคืช C, ืืืง ืืืชืืื ืืช ืืืืฉืืช ืฉืคืืชืื ืืืกืืจืช ืชืงื C2X ืืืฉืื (ืืืคืขื ืขื ืืื ืฆืืื -std=c2x ื-std=gnu2x): ืืืคืืขื ืชืืืื ืืชืืืืจ "[[]]" ืืืืืจืช ืชืืื ืืช ืืื ื C++ (ืืืืืื, [[gnu ::const]], [[ืืืฆื ืืฉืืืืฉ]], [[fallthrough]] ื-[[ืืybe_unused]]. ื ืืกืคื ืชืืืื ืืชืืืืจ "u8" ืืืืืจืช ืงืืืขืื ืขื ืชืืื UTF-8.
ื ืืกืคื ืคืงืืืืช ืืืงืจื ืืืฉืืช ื . ืืืกืืคื ืชืืืืคื "%OB" ื-"%Ob" ื-strftime. - ืืฆื ืืจืืจืช ืืืืื ืขืืืจ C ืืื "-fno-common", ืืืืคืฉืจ ืืืฉื ืืขืืื ืืืชืจ ืืืฉืชื ืื ืืืืืืืื ืืคืืืคืืจืืืช ืืกืืืืืช.
- ืขืืืจ C++, ืืืืืขื ื-16 ืฉืื ืืืื ืืืืืืฉืื, ืฉืคืืชืื ืืชืงื C++20. ืืืื ืืืืช ืืืคืชื ืื ืืกืคืช "constinit"
ืืชืืืื ืืืจืืืืช ืชืื ืืืช ืืืฉืื "ืืืฉืืื ". ืืืฉืืื ืืืคืฉืจืื ืื ืืืืืืจ ืงืืืฆื ืฉื ืืจืืฉืืช ืคืจืืืจืื ืฉื ืชืื ืืช, ืฉืืืื ืืงืืืคืืืฆืื, ืืืืืืืช ืืช ืงืืืฆืช ืืืจืืืื ืืื ืฉื ืืชื ืืงืื ืืคืจืืืจืื ืฉื ืชืื ืืช. ื ืืชื ืืืฉืชืืฉ ืืืืฉืืื ืืื ืืื ืืข ืืืกืจ ืขืงืืืืช ืืืืืช ืืื ืืืืคืืื ืื ืฉื ืกืืื ืื ืชืื ืื ืืืฉืืฉืื ืืชืื ืืชืื ืืช ืืืื ืืืคืืื ื ืกืื ืื ืชืื ืื ืฉื ืคืจืืืจื ืืงืื. - G++ ืืกืคืง ืืืืื ืฉื ืืชื ืืืืช ืื ืืืืืจืช ืื ืืจืืช ืขื ืืื ืฉืื ืื ืืืืืืงืืื ืงืืืขืื ืืืืฆืขืืช constexpr. ืฆืจืืืช ืืืืจืื ืืืคืืชืช ืขื ืืื ืืืืืจ ืืขืช ืืืฉืื constexpr. ื ืืกืคื ืืืืจืืช ืืืฉืืช "-Wmismatched-tags" ื-"-Wredundant-tags".
- ืืคืฉืจืืืืช ืฉืืจืช ืคืงืืื ืืืฉืืช ืืืฆืขื:
- "-fallocation-dce" ืืื ืืืกืืจ ืืืืืช ืืืืชืจืื ืฉื ืืืคืจืืืจืื "ืืืฉืื" ื"ืืืง".
- "-fprofile-partial-training" ืืื ืืืฉืืืช ืืืคืืืืืืฆืื ืฉื ืืืื ืขืืืจ ืงืื ืฉืืื ืื ืจืืฆืช ืืืืื.
- "-fprofile-reproducible ืืื ืืฉืืื ืืจืืช ืฉืืืืจ ืืคืจืืคืื.
- "-fprofile-prefix-path" ืืื ืืืืืืจ ืืช ืกืคืจืืืช ืื ืืืช ืืืงืืจ ืืืกืืกืืช ืืืฉืืฉืช ืืืฆืืจืช ืคืจืืคืื ื ืคืจื (ืขืืืจ "-fprofile-generate=profile_dir" ื-"-fprofile-use=profile_dir").
- ืืืงืกื ืืืืืจื ืืืคืฉืจืืืืช ืืืืืืจืืช, ืืกืืคืงืื ืืืคืจ-ืงืืฉืืจืื ืืืืคืฉืจืื ืื ืืขืืืจ ืืชืืขืื ืืืคืฉืจืืืืช ืืื. ืืืืคืช ืืชืืืช ืืืชืจ ื ืฉืืืช ืืืืฆืขืืช ืืืคืฉืจืืช "-fdiagnostics-urls".
- ื ืืกืฃ ืืคืขืื ืงืื-ืืขืื "
__ืืฉ_ืื ื ", ืฉืื ื ืืชื ืืืฉืชืืฉ ืืื ืืืืืง ืื ืืฉ ืคืื ืงืฆืืืช ืืืื ืืช. - ื ืืกืคื ืคืื ืงืฆืื ืืืื ืืช ืืืฉื "__builtin_roundeven" ืขื ืืืฉืื ืฉื ืคืื ืงืฆืืืช ืืขืืืื ืืืืืืจืช ืืืคืจื ISO/IEC TS 18661, ืืืืื ื"ืขืืื", ืื ืขืืืื ืืืง ืืืื ื-0.5 ืืืขืื (ืืขืจื ืืืื ืืืชืจ), ืคืืืช ื-0.5 - ืืืื (ืืืคืก), ืืฉืืื ื-0.5 - ืืื ืืืฉืืืืื ืฉื ืืกืคืจื ืืืคื ื ืืืจืื ื.
- ืขืืืจ ืืจืืืืงืืืจืช AArch64, ื ืืกืคื ืชืืืื ืืืจืืื SVE2 ืืฉืืคืจื ืืชืืืื ื-SVE (Scalable Vector Extension), ืืืื ืชืืกืคืช ืชืืืื ืืคืื ืงืฆืืืช ืืกืืื SVE ACLE ืืืื ืื, ืืฉืืืืฉ ืืืงืืืจืืืฆืื. ืืชืืืื ื-LSE (ืืจืืืืช ืืขืจืืช ืืืืืืช) ืื-TME (ืืจืืืช ืืืืจืื ืขืกืงื) ืืืจืืื. ื ืืกืคื ืืืจืืืช ืืืฉืืช ืืืืฆืขืืช ื-Armv8.5-A ื-Armv8.6-A, ืืืื ืืืจืืืช ืืืฆืืจืช ืืกืคืจืื ืืงืจืื, ืขืืืื, ืงืฉืืจืช ืชืื ืืืืจืื,
bfloat16 ืืืคื ืืืจืืฆื. ื ืืกืคื ืชืืืื ืืืขืื
Arm Cortex-A77,
Arm Cortex-A76AE,
Arm Cortex-A65,
Arm Cortex-A65AE,
Arm Cortex-A34 ื
Marvell ThunderX3. - ื ืืกืคื ืชืืืื ืขืืืจ ABI FDPIC (ืืฆืืืขื ืคืื ืงืฆืืืช ืฉื 32 ืกืืืืืช) ืขืืืจ ARM64. ืขืืืื ืืืืืฉ ืืืืื ืฉื ืคืขืืืืช ืฉื 64 ืกืืืืืช. ื ืืกืคื ืชืืืื ืืืขืื
Arm Cortex-A77,
Arm Cortex-A76AE ื
Arm Cortex-M35P. ืชืืืื ืืืจืืืช ืขืืืจ ืืืจืืืช ืขืืืื ื ืชืื ืื ืฉื ACLE, ืืืื SIMD ืฉื 32 ืกืืืืืช, ืืคื 16 ืกืืืืืช, ืืจืืชืืืืงื ืฉื ืชืคืก ืืืืคืืืืืืฆืืืช ืืืจืืช ืฉื ืืืืืจืืชืื DSP. ื ืืกืคื ืชืืืื ื ืืกืืื ืืช ืขืืืจ ืืืจืืืช ACLE CDE (Custom Datapath Extension). - ืฉืืคืืจ ืืฉืืขืืชื ืืืฆืืจืช ืงืื ืืืืงืืืจืืืฆืื ื-backend ืขืืืจ GPUs ืฉื AMD ืืืืืกืกืื ืขื ืืืืงืจื-ืืจืืืืงืืืจื ืฉื GCN.
- ื ืืกืคื ืชืืืื ืืืืฉืืจืื ืืืืื XMEGA ืขืืืจ ืืจืืืืงืืืจืช AVR
ATtiny202, ATtiny204, ATtiny402, ATtiny404, ATtiny406, ATtiny804, ATtiny806, ATtiny807, ATtiny1604, ATtiny1606, ATtiny1607, ATmega808ga, ATmega809, ATmega1608 1609, ATmega3208, ATmega3209 4808, ATmega4809 ื-ATmegaXNUMX. - ืืจืืืช ืืจืืืืงืืืจืช ืกื ืืืจืืืช ืืืฉื ืฉื Intel ENQCMD (-menqcmd) ื ืืกืคื ืขืืืจ ืืจืืืืงืืืจืืช IA-32/x86-64. ื ืืกืคื ืชืืืื ืขืืืจ ืืื ืื ืงืืคืจืืืืง (-march=cooperlake, ืืืื ืืช ืืจืืืช AVX512BF16 ISA) ื-Tigerlake (-march=tigerlake, ืืืื ืืจืืืืช MOVDIRI, MOVDIR64B ื-AVX512VP2INTERSECT ISA).
- ืืืฉืื ืฉื HSAIL (ืฉืคืช ืืื ืืื ืฉื ืืจืืืืงืืืจืช ืืขืจืืช ืืืจืืื ืืช) ืขืืืจ ืืขืจืืืช ืืืฉืื ืืืจืืื ืืืช ืืืืืกืกืืช ืขื ืืจืืืืงืืืจืช HSA ืืืฆื ืืฉืืืืฉ ืืืื ืื ืจืื ืืืกืจ ืืืืืืจื ืขืชืืืืช.
ืืงืืจ: OpenNet.ru