αααααΆααααΈαα½αααααΆαααααΆαα’αα·αααααα
GCC 10.1 ααΊαα½αα±ααααααααααΆαααααααΆααααΆαα’αα»ααααααΆαα
αααααααα·αααΆα
αααΎααα
αααα»αααΆααΆ C ++ αααααααΌαααΆααααααΎαα‘αΎααααααΆαααααααααΆα C ++ 20 ααΆααααααα’ααΆααααααΉααααααααΆαααΆααΆ C ααΆαααα’ααΆαα (C2x) ααΆααααααΎαααααα·αααααΆαααααΈαα
αααα»ααααααααΆαααααααααααααα·ααΈα
ααααα αα·αααΆαααΆααααααΆααα·αααααα
ααααΆαα
-
αααααα αααααα·αααααααααΆααα·ααΆααα·αα·αααα "- α’ααααα·ααΆα β αααα’αα»ααααααΆααα·ααΆαα’ααααααααΎαααΆααααααΉαααα’ααααααΆααααΎααααΆαααααααΌαααααα·ααααα·ααΌα αα·αααα αΌααα·αααααααα αααα»ααααααα·ααΈαα½αα αααααααααΆααααααααΆαααααΎααααα αΆαα ααααΆααααΆαα ααααα ααΌα ααΆααΆαα α ααΈααααα ααΆαααα»αααΆα free() αααααΆααααααααααααΌααΈαα½α ααΆαααα ααααΆαα―αααΆααα·αααααΆ ααΆααααααΆα αα·αααααααΆααααααα·α ααα ααΆαα αΌαααααΎαααα»αα’αααα αα αΆααααααΆααααααα αααααααΎαααααααααα·αααΆααααααααα ααΆαααααΎααααΆααααααααααΈαααααΆααααΌα OpenSSL ααΆαααααΎα±ααααΆα’αΆα αααααα’ααααααααΆααα½α α αΎαααΆαααΆαααααααααααααααααΆαα . - ααααΎα±αααααααΎαα‘αΎαααΌαααααα·αααααΆαα’ααααααΈαα·αα·ααΈα ααααα IPA-SRA (α’ααααααααΎαααΆαααΈαα·αα·ααΈαααααΆαα ααααααα Scalar Shared Replacement) ααααΌαααΆααααα αα‘αΎααα·αααΎααααΈααααΎαααΆααα αααα α α αΎααααα»αα αααααααααααααααα α₯α‘αΌααααααααααααααααΆαααααΆ αα·ααααα‘αααααααααααα·αααααΎα αα αααα»ααααααααααΎαααααα·αααααΆα "-O2" αααααΎα "-finline-functions" ααααΌαααΆαααΎα αααααααΌαααΆαααααααα½αα‘αΎααα·αααΎααααΈα’αα»αααααααΌαααααα½ααααααααααααΎααΆαα’αα»ααααα ααΆαααΆααααα heuristic αααααΆααααΆαααΆαααααααΆααα»αααΆααααα»ααα½αααααΌαααΆααααααΏαα ααΆααααααΈαβαααα»αβαα½αβαα»α αα·αβαα»αααΆαβααααΌαβα’αΆα βααααΎβααααααΆαβα’αααΈβαα½αβαααααβααΎααααΈβααααααααΆαβααααα·αααααΆαβααβααΆααααααααβαα»ααααα αααααΆαα C++ ααΆαααααΉαααααΌαααααΆααααααααααααααααααΆαααα’ααααΎααααααααααΌαααΆαααααΎα±αααααααΎαα‘αΎαα
- ααΆααααααΎαααααα·αααααΆααααααααΆααααΆαααααΆαα (LTO) α ααΆααααααααααααα·ααΈααααΈαααα’αΆα
ααααα·ααααα·ααΆαα
αααα αα ααΎααααΈαααααα‘αΎααα·αααΌαααααααΆαα’αααΈα―αααΆαααααα»ααΆαα½α LTO bytecode α αααΆαααΆα‘αα LTO ααααααΆαααααααααααααααααα·αααααα ααα½αααααΆαααααΎαααΆααααα»ααααααααΆαααααΆαααααΎαααΆααα·α αα α αΎαααααα·αααΎαα½ααααα·αα’αΆα αααααααΆα ααΌαααααΎααααααΆαα’αααΈα ααα½αααααΌααααΈααΈααΌααΆαααααΆαααΆαααΆα‘ααα ααΆααααααααααααααΆααααα»αααΆααααα αΆαα LTO bytecode αααααααΎ zstd algorithm α - ααααααΆααααααΎαααααα·αααααΆααααααα’ααααΎααααααααααΆααααααΎαααααααααΌα (PGO - ααΆαααααΎα±αααααααΎαααΆαααααααααααΆα) ααααΌαααΆαααααΎα±αααααααΎαα‘αΎα ααααααααΎαααΌαααααα’αααααΎααααααα’ααααΎααΆααα·ααΆαα’αααΈααααααααααΆαααααα·ααααα·ααΌαα ααΆααααααααΆαααααααααααΎαα‘αΎααααα»αα’αα‘α»ααααα
ααααα αα·αααΆααααααααΌααααα
/αααααΆααα ααΆαααααααααΎα "
-fprofile-ααααα Β» α₯α‘αΌααααα’αΆα ααΆαααΆαααααααααααααα αΌαααα 4 α§ααΆα ααααααααΆααααΆαα α ααΌαααααααααααααα αα·ααααααααααααΆαααααααα αααΆααααΆαααααααααααα - ααΆααααααΆαααααααα·ααΈαααΆαααΆα‘ααααααΌαααΆαα’αα»αααααααααΆααααΆααΆ C, C++ αα·α Fortran
OpenACC 2.6 ααααααααα§ααααααααααΆααααααΎαααΆααα·αααααΎαααΆααα ααΎ GPUs αα·αααααααααααααΎαααΆαα―ααααααΌα ααΆ NVIDIA PTX ααΆααΎαα ααΆαα’αα»αααααααααααΆαααΊααααΎαααααααααα’αΌααΈα’αα α₯.α (Open Multi-Processing) αααααααα API αα·ααα·ααΈααΆαααααααααΆαα’αα»αααααα·ααΈααΆααααααααααα·ααΈαααΆαααΆα‘αααα ααΎαααααααααα α»ααααΌα αα·αααΌαααΆαα (CPU + GPU/DSP) αααααΆαα’αααα αα αΆααα½α αα·αααα·α ααα (αααΈαααΈ)α αααααααα·ααααααααΆαααααααααΌα ααΆααααααααα α»ααααααα―ααα ααΆαααααα αα·αααΆαααααΆαααααα·ααα»α ααΆααααααΆαα·α αα·ααααααα use_device_addr α αααααΆαα OpenMP αα·α OpenACC ααΆαααΆααααααααΌαααΆααααααααααααΆααααααα·ααααα·ααΆα offloading αα ααΎ GPUs ααααΆααααΈ 10 (Fiji) αα·α AMD Radeon (GCN) ααααΆααααΈ 20 (VEGA XNUMX/VEGA XNUMX)α - αααααΆααααΆααΆαααααα½ααΆα 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 α¬ \UNNNNNNNN) α α§ααΆα ααα:
static const int Ο = 3;
int get_naΓ―ve_pi() {
αααα‘ααΟ;
} - αααααΆααααΆααΆ C ααααααααααααααα·αααααααΈαααααααΌαααΆααααααΎαα‘αΎααα
αααα»ααααααααΆα C2X ααααΌαααΆαα’αα»αααα (ααααΌαααΆαααΎαααααααααΆαα -std=c2x αα·α -std=gnu2x)α ααΆαααΆαααααααααΆααααΆααααααααααα "[[]]" ααΆααααα αΆααααα½ααααααΆααααΆαααααααα»αααααααααΌα
αα
αααα»α C++ (α§ααΆα ααα [[gnu ::const]], [[ααα·ααα]], [[fallthrough]] αα·α [[maybe_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") α
- αα αααα»αα’ααααααααααΆααααααΆαααααααΎααααααΆααααααΆαα ααααααααααααΌαααΆααααααααΌααααα’αα»ααααΆαα±ααα’αααα αΌααα ααΆααα―αααΆααααααΆαααααααΎαααΆαααααα ααΆααααα½α URL ααααΌαααΆαααααααααααααααααΎαααααΎα "-fdiagnostics-urls" α
- ααΆαααααααααααα·ααααα·ααααααΎαααΆααα»α "
__ααΆα_ααΆαααα " αααα’αΆα ααααΌαααΆαααααΎααΎααααΈαα·αα·αααααΎααα»αααΆααααααααΆααααααΆαα½αα - ααΆααααααααα»αααΆααααααααΆααααααΆαα½αααααΈ "__builtin_roundeven" ααΆαα½αααΉαααΆαα’αα»αααααα»αααΆααααααααααααΆαααααααααα»αααΆαααααααααα ISO/IEC TS 18661 αααααααα ααΉα "αα»α" ααα»αααααααααααααααααααΆα 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 (ααααααααααααα·ααααααααααΆαααααα½α)α - ααΆααααααΎαααΌα αα·αααα·α αααααΆαααΆααααααΎαα‘αΎααα½αα±ααααααααααΆαααα αααα»ααααααααΆαααααααααααΆαα AMD GPUs αααααα’ααααΎααΈααααΌααααΆαααααααα GCN α
- ααΆαααααααααΆαααΆαααααααααΆααα§αααααααΌα
XMEGA αααααΆααααααΆαααααααα AVR
ATtiny202, ATtiny204, ATtiny402, ATtiny404, ATtiny406, ATtiny804, ATtiny806, ATtiny807, ATtiny1604, ATtiny1606, ATtiny1607, ATmega808, ATmega809 ATmega1608 1609, ATmega3208 αα·α ATmega3209α - αααααααααααααααΆαααααααα Intel ENQCMD ααααΈ (-menqcmd) ααααΌαααΆααααααααααααΆααααααΆαααααααα IA-32/x86-64 α ααΆαααααααααΆαααΆαααααααααΆαα Intel Cooperlake (-march=cooperlake αα½αααΆαααααααααααα AVX512BF16 ISA) αα·α Tigerlake (-march=tigerlake αα½αααΆα αααΈααΈααΌ MOVDIRI, MOVDIR64B αα·α AVX512VP2INTERSECT ISA) αααΈααΈααΌα
- ααΆαα’αα»αααααα HSAIL (Heterogeneous System Architecture Intermediate Language) αααααΆαααααααααααα»αααααΌααααααααΆαααΌαααααΆαααΎααααΆαααααααα HSA ααααΌαααΆαααα·ααα α αΎαααααααΆααΉαααααΌαααΆαααα αααα αααα»αααΆαα ααααααΆαααΆαααα’ααΆααα
ααααα: opennet.ru