αααααΆααααΈαα½αααααΆαααααΆαα’αα·αααααα
GCC 9.1 ααΊαα½αα±ααααααααααΆαααααααΆαααααααααΆαααΆαααΆαααααααααΆαααααααααΆα C ++17 αααααααα’αα»αααααααααααΆααααααααααΆα C ++ 20 ααΆαααα’ααΆαα (αααααΆααααααααΌα C ++ 2a) ααΆαααΆαααααα αΌααααα»ααααααααΆααα»ααααααΆααααΆααΆ D ααΆαααΆααααααααααααααααααΆαα OpenMP 5.0 ααΆαααΆααααααααΎααααααααααααααΆαα OpenACC 2.5 αααααΎαααα αααααΆααααααΎαααααα·αααααΆαα’ααααααΈαα·αα·ααΈ αα·αααΆααααααΎαααααα·αααααΆααα ααααΆααααΆαα α ααΆααααααΈαα§ααααααα·αα·α αααα αα·αααΆαααααααααΆααααααΆαααααΈ αααααααΆαααααααααααΆαα OpenRISC, C-SKY V2 αα·α AMD GCN GPU α
ααααΆαα
- ααΆαααααααααΆαααΆαααααααααΆααααΆααΆααααααααααα·ααΈ Dα GCC αα½ααααα
αΌααααααααΆααα»αααΆαα½αααΉααααααα·ααΈα
ααααα
GDC (Gnu D Compiler) αα·αβαααααΆαααβαααβααααΎαααΆα (libphobos) αααβα’αα»ααααΆαβα±ααβα’αααβααααΎβαααααααΆα GCC ααΎααααΈβαααααΎαβαααααα·ααΈβαααα»αβααΆααΆβαααααβαααααα·ααΈ Dα ααααΎαααΆαβααβααΆαβα’αα»ααααΆαβα±ααβααΆαβααΆαβααΆααααβααΆααΆ D αααα»α GCCααΆαα αΆααααααΎα αααα‘αααααα·ααααα»αααααΆα 2011 ααα»ααααα’αΌαααΎ αααααΆααααααααΌαααΆααααα»αααΆαααΆαααααΌαα±ααααααααΆααααααΌαααΆααααα GCC αα·ααααα αΆααΆαα½αααΉαααΆαααααααα·αααα·αααααα·αααα·αααααΆαα Digital Mars ααααααα»ααααααΎαααΆααΆααααααααααα·ααΈ D α - ααΆααααααα’ααααΌαααΆαααααΎα‘αΎαα αααααααΆαααΈααααααΎαααΌαα α§ααΆα ααα ααΆαααααΎααααΆαααα»αααααΆααααααααααααααααΆααααΆααααααΈα Switch expressions (ααΆααΆαααα ααΆαααααΎααααααααΈα αααααΆαααΆααααααα α α·ααα) α’αΆαααααααΎααααΆαααΆαααααΌαααΆαα’αα»ααααα ααΆααααααααααααααΆααααα»αααΆαααααααααα»αααΆαααΈααα’αααααααα½ααααα αΌααααααα Switch αααααααΎααΆααααααΎαααααα·αααααΆα β-ftree-switch-conversionβ (α§ααΆα ααα αααα»αααααααααααααΌα ααΆ βcase 2: how = 205; break; case 3: how = 305; break ;" ααΉαααααΌαααΆαααααααααα ααΆ "100 * αααα + 5";
- ααααΎα±αααααααΎαα‘αΎαααΌαααααα·αααααΆαα’ααααααΈαα·αα·ααΈα ααΆαβαααααβααΆαβααΆααβαααααΆαβαααα»αβαα½αβααααΌαβααΆαβααααα½αβαααααΆααβααΌαααααΆαβααΌα C++ ααααΎα αα·αβααΆαβαααααΈαβααΆαα½αβαααΆαααΆααααααβααααΈ max-inline-insns-small, max-inline-insns-size, uninlined-function-insns, uninlined-function-time, uninlined-thunk-insns αα·α uninlined - αααααααΆα ααααΎα’αααααααΎαα‘αΎαααΌαααΆαααααΉαααααΌααα·αααΆαααααΆαααΆαααααΆααααααααΌααααααΆαα/αααα
α ααααΎα±αααααααΎαα‘αΎαααΌαααΆαααααααΆααααααΆααααα ααα
α―αααΆαααααα (α§ααΆα ααα αα αααα’αα»ααααααΆααααααΎαααααα·αααααΆααα ααααΆααααΆααααααΆαααα αααααα·ααΈαα); - ααααααΆααααααΎαααααα·αααααΆααααααα’ααααΎααααααααααΆααααααΎαααααααααΌα (PGO - ααΆαααααΎα±αααααααΎαααΆαααααααααααΆα) ααααΌαααΆαααααΎα±αααααααΎαα‘αΎα ααααααααΎαααΌαααααα’αααααΎααααααα’ααααΎααΆααα·ααΆαα’αααΈααααααααααΆαααααα·ααααα·ααΌαα αααααΎααααααα "
-fprofile-ααααΎ α₯α‘αΌαααααα½ααααα αΌαααΆαααααααααααΎαααααα·αααααΆα "-fversion-loops-for-strides", "-floop-interchange", "-floop-unroll-and-jam" αα·α "-ftree-loop-distribution" α ααΆαααα ααααΌαααΆαααΆαααααα αΌαα’ααΈααααΌααααΆαααΆαα½αααΉαααααααα αααα»αα―αααΆα αααααΆαααααααααα αααα―αααΆααααααΆααααααα (α’ααΈααααΌααααΆαα₯α‘αΌααααααααΌαααΆααααααΎαααααΆαααα αααααααΎααΆααααααΎαααααα·αααααΆαααα‘α»ααααααααΆαα); - ααΆααααααΎαααααα·αααααΆααααααααΆααααΆαααααΆαα (LTO) α ααΆαααΆααααααααααααααααΌαααΆααααααααΌααα»αααααααααΎααααααα αααααααΎα±ααααΆα’αΆα
ααααΎαα
ααΆαααΎααααΈααΆαααααααααα αααα―αααΆαααααα» LTO αααΆαααααΆαα ααΆαααααααααΆαααααΎααααΆααα’αααα
αα
αΆααα
ααααΆααααΆαα
α αα·αααααΎα±αααααααΎαα‘αΎαααΌαααΆαααααααααΆααααααα·ααααα·ααΆαα α
ααα½αααααΆαααΆα (-param lto-partitions) ααααΌαααΆαααΎαα‘αΎαααΈ 32 αα
128 αααααααΎα’αααααααΎαα‘αΎαααΌαααααΎαααΆααα
ααΎαααααααααααααΆαα
ααα½α CPU threads α
αααΎαα αααΆαααΆααααααααααΌαααΆαααααααααΎααααΈαααααααααα
ααα½αααααααΎαααΆααααααα·ααΈαααααΎαααααα·αααααΆα
"-param lto-max-streaming-parallelism";ααΆαααααα ααΎαααααααααα ααΉα GCC 8.3 ααΆααααααΎαααααα·αααααΆααααααΆαααααΆααα αααα»α GCC 9
α’αα»ααααΆα ααΆααααααααααααααΆα ααααααααα Firefox 5 αα·α LibreOffice 66 αααα αα 6.2.3% α ααα αααα―αααΆαααααα»ααΆαααα α»α 7% α αααααααΆα ααα ααΎαααΈααΈααΌ 8-core ααα α»α 11% α ααααΆααααΆααααααΎαααααα·αααααΆαααΆαααααααααΆααααααααΆααααΆααααααΆααααΊααΏαααΆααα»α 28% αα·αααααΎααααΆααα’αααα αα αΆααα·α ααΆα 20%α ααΆαααααΎααααΆααα’αααα αα αΆαααααααΎαααΆαααΈαα½ααααααααΆααααΆααααΆαααΆα‘αααα LTO ααα α»α 30%; - ααΆαα
αααΎαααααΆαααααααααααα·ααΈαααΆαααΆα‘ααααααΌαααΆαα’αα»αααααααααΆααααΆααΆ C, C++ αα·α Fortran
OpenACC 2.5 ααααααααα§ααααααααααΆααααααΎαααΆααα·αααααΎαααΆααα ααΎ GPUs αα·αααααααααααααΎαααΆαα―ααααααΌα ααΆ NVIDIA PTX; - ααΆαααΆααααααααααααααΆαααααααααΆαααααΌαααΆαα’αα»αααααααααΆαα C αα·α C ++
α’αΌααΈα’αα α₯.α (Open Multi-Processing) αααααααα API αα·ααα·ααΈααΆαααααααααΆαα’αα»αααααα·ααΈααΆααααααααααα·ααΈαααΆαααΆα‘αααααααΆααααΆααΆ C, C++ αα·α Fortran αα ααΎαααααααααα α»ααααΌα αα·αααΌαααΆαα (CPU + GPU/DSP) αααααΆαα’αααα αα αΆααα½α αα·αααα·α ααα (αααΈαααΈ) ; - ααΆααααααΆαααααΈααααΌαααΆααααααααααααΆααααΆααΆ Cα "
-Waddress-of-packed-αααΆαα·α " (αααααβααααα·α βαα·αβαααααΉαβαα βααΉαβαααΆαα·αβααβαα ααΆαααααααα α¬βαα ααΈα) αα·α
Β«-Wabsolute-value " (αα αααα αΌαααααΎαα»αααΆααααααΆααααααΆαααααααΆα αααΆα ααααα·αααΎααΆααα»αααΆαααααααααΆααααααΆααα’αΆαα»ααααααααααΆααααααΆαα α§ααΆα ααα fabs(3.14) αα½αααααααΌαααΆαααααΎαααα½αα±αα abs(3.14)α ααΆααααααΆαααααΈααααΌαααΆααααααααααααΆαα C++α "-Wdeprecated-copy",
"-Winit-list-lifetime", "-Wredundant-move", "-Wpessimizing-move" αα·α "-Wclass-conversion" α ααΆααααααΆααααααΆαααΈαα»αααΆα αααΎαααααΌαααΆααααααΈαα - ααΆαααααααααΆαααΆααααααΆααα·ααααααααααΆααααααααααααααααΆαααΆααΆ C ααΆαααα’ααΆαα αααααΆααααααααΌα C2x α ααΎααααΈααΎαααΆαααΆαααα C2x ααΌαααααΎαααααΎα "-std=c2x" αα·α "-std=gnu2x" (ααΎααααΈααΎαααααΎαααΆαααααααααααα GNU)α αααααααΆααα αααααα·ααααα»αααααΆααααΆαααααΌαααααΆαα’αα·αααααα ααΌα αααααααααααΆαααααααΆ ααΆαααααΆααααα ααααα· _Static_assert ααΆαα½αα’αΆαα»ααααααα½αααα»ααααααααααααΌαααΆαααΆαααα (_Static_assert ααΆαα½αα’αΆαα»αααααααΈαααΊααΆααααααααααααααΆααα αααα»α C11);
- ααΆαααΆαααααααααΆαααααααααΆα C ++ 17 ααααΌαααΆααααααΆαααΆααΆααααααααΆαα αα αααααααΆααα»α αααααααΆαααΆααΆαα C ++17 ααααΌαααΆαα’αα»αααααααΆααααααα α αΎααα αααα»α libstdc++ αα»αααΆααααααΆααααααααΆαααααααααα»ααααααααΆαααΊαα·ααααααΆαα’αα»ααααααααααα
- αααα
ααΆαα’αα»αααα ααΆαα»αααααααααΆα C++2a ααΆαααα’ααΆααα α§ααΆα ααα αααααααΆααααα»αααΆααα½ααααα αΌααα½ααααα»αα’αα‘α»ααααα αΆααααααΎαααααΌαααΆααααααα ααααααααααααααααΆαααααααα lambda ααααΌαααΆαα’αα»αααα ααΆαααΆαααααααααΆαααααΆαα·αααααααα ααΆαααααααααα·αααααα αα·ααα»αααααααααααααΆ/αα·αααααααααΌαααΆααααααα αααααααΆααααα»αααΆαα α αα»αααΆααα·αααα·ααα αααα»αααααααααΆαααααααααααααΌαααΆααααααααΌαα αα
ααΎααααΈααΎαααΆαααΆαααα C++2a ααΌαααααΎαααααΎα "-std=c++2a" αα·α "-std=gnu++2a" α ααΆαααααααα―αααΆαααααααΆαααΈα αα·ααααααα libstdc++ αααααΆαα C++2a, std::remove_cvref, std::unwrap_reference, std::unwrap_decay_ref, std::is_nothrow_convertible αα·α std::type_identity traits std::midpoint, std::lerps , std::bind_front,
std::visit, std::is_constant_evaluated αα·α std::assume_aligned ααααααααΆαααΆαααααααααΆαααααααα char8_t ααΆαα’αα»αααααααααααΆααααα»αααΆααα·αα·αααααΎααα»ααααα αα·ααα αα ααααααααα’αααα (starts_with, ends_with); - ααΆαααααααααΆαααΆαααααααααΆααααααααααααααΎαααΆα ARM ααααΈα
Cortex-A76, Cortex-A55, Cortex-A76 DynamIQ big.LITTLE αα·α Neoverse N1 α ααΆαααααααααΆαααΆαααααααααΆααααΆαααααΆααααααΆαααααΆααα αααα»α Armv8.3-A αααααΆααααααΎααΆαααΆαα½αα ααα½ααα»ααααα·α ααΆααααααΎααααα ααααα (rng) αα·αααΆαααΆααααααΆααααααΌααΈ (memtag) ααααΌα ααΆααΆαααααΆααααααΆαααααααααΆααααΆαααΆααααα αΆααααααΆααααααΉαααΆαα’αα»ααααααΆααααΆααααααΆα αα·αααααα·ααααα·ααΆαααα’αααααΆαααααΆααααααΆααΆα . αααααΆααααααΆαααααααα AArch64 ααααααΆαααΆαααααΌαααΆαααααααα ααα»α αααααααααααααα·αα ααΆ (β-fstack-clash-protectionβ) α ααΎααααΈααααΎααααααααααααΆαααααααα Armv8.5-A αααααΎα β-march=armv8.5-aβ ααααΌαααΆααααααα - ααΆαα½ααααα αΌααααααααΆαααααααααααΆαααααααΎαααΌααααααΆαα AMD GPUs αααααα’ααααΎααααΆααααααααααΈααααΌ GCN α ααΆαα’αα»αααααα αα α»ααααααααααΌαααΆααααααα ααααααΆαα ααααααααααα·ααΈαααααΆααααααααα½α (ααΆαααΆαααααααααΆααααΆαα’αα»ααααααΆαααααΆαα α»ααααααΆαααα OpenMP αα·α OpenACC ααΉαααααΌαααΆααααααααΌααα αααααααα) αα·αααΆαααΆαααααααααΆαα GPU Fiji αα·α Vega 10;
- ααΆααααααααααααααΆααααααααααΈαααααΆααααααΎαααΆα
OpenRISC ; - ααΆααααααααααααααΆαααααααααααΆααααααΎαααΆα
C-SKY V2 ααα·αααααααα»αα αα»αα α·ααααααΆααααααααΌα ααααΆαααααΆααα§αααααααααΎααααΆααααααααα - αααααΎααααααΆααααΆααααααααΆααΆααα’αααααααααΎαααΆααααααααααΆαααααα αα αα kb, KiB, MB, MiB, GB αα·α GiB;
-
ααΆαα’αα»αααα αααααΎα β-flive-patching=[inline-only-static|inline-clone]β α’αα»ααααΆαα±ααα’ααααααααα ααΆαααΌαααΆαα αααααααααα»ααααα·ααΆααααααΆααααααααααααααααααααααΆαα αααααΆαααααΆααααααααααα αααΎαααααα·αααΎααΆαααααΎααααΆααα’ααααααααΎαααΆα (IPA ααΆααααααΎαααααα·αααααΆα; - ααΆααααααααααααΎα "--completion" αααααΆααααΆααααααααααααααα’ααααΆαααααααααααΎααα αααααααΎ bash;
- α§ααααααα·αα·α
αααααααααααΌαααΆααααα αΆαααααΆααααααααα’ααααααααααααααααα αΆαααΈααααααααΆαα αα·αααΆααααααΆααααααααΆααααααΆαααααααααΎαααΎα ααΌα
ααΆαααααα operand α ααΎααααΈαα·αααΆααααα αΆαααααααααΆαα αα·αααααΆα αααααΎα "-fno-diagnostics-show-line-numbers" αα·α "-fno-diagnostics-show-labels" ααααΌαααΆααααααααΌαα
-
ααΆααααααΈα α§ααααααααααΆααααΆααα·αα·α ααααααα α»ααα αααα»αααΌα C ++ ααααΎα’αααααααΎαα‘αΎαααΌαααΆαα’αΆαααααααΆαα’αααΈααΌαα ααα»ααααα α»α αα·αααΆαααααα·α αααααΆαααΆαααααααααααΆααααα αΆα - ααΆααααααααααααΎα β-fdiagnostics-format=jsonβ αααα’αα»ααααΆαα±αααααααΎααααααααα·αα·α αααααααα»ααααααααααΆαααΈαα’αΆα α’αΆαααΆα (JSON);
- ααΆααααααααααααΎαααααααααααΈ β-fprofile-filter-filesβ αα·α β-fprofile-exclude-filesβ ααΎααααΈααααΎαααΎαα―αααΆαααααααααααααΌαααααΎαααΆαα
- AddressSanitizer αααααααΌαααΆααααααΎαααΌααααααααααΆααααααα½αααααααααααααααΆααα’αααααααααααααααα· αααααΆαααααααααΆαααααΎααααΆααα’αααα αα αΆαααα―αααΆααααα’αΆα ααααα·ααααα·ααΆααααααααΌαααΆααα·αα·αααα
- ααΆααααααα’αα·ααααααα
αααα»α "
- fopt-info Β» (ααααααΆαααα’α·αα’αααΈααΆααααααΎαααααα·αααααΆααααααα)α ααΆααααααααα»αααααααααΈ "ααααΎα±αααααααΎα" αα·α "ααααΆα" ααααααααΈααΎαα»ααααααααααΆαααΈαα»α "α αααΆα" α ααααααααααααααααααααΆαα’αααΈααΆααααααα α α·αααααΎααΆαααΆααααααΆααααα»ααααααΆαα αα·ααα·α αΆαααααΆααααααα - ααΆααααααααααααΎα "-fsave-optimization-record" αα ααααααααΆααααααΆαα GCC αααααΆαα»αα―αααΆα SRCFILE.opt-record.json.gz ααΆαα½αααΉαααΆααα·αααααΆα’αααΈααΆααααααα α α·αααααΎααΆαααααΎααααΆααααΆααααααΎαααααα·αααααΆαααΆααααΆααα αααααΎαααααΈαα»αααΈαααα β-fopt-infoβ ααααα½ααααα αΌααα·ααααααααααΆαααααα ααΌα ααΆααααααΆαα’αααΈαααααα αα·ααααααααααΆαααααα»ααααααΆαα
- ααΆααααααααααααΎα β-fipa-stack-alignmentβ αα·α β-fipa-reference-addressableβ ααΎααααΈαααααααααααΆααααααΉαααα αα·αααΆαααααΎααααΆααααααααα’αΆααααααΆα (αααααααΆααα α¬α’αΆα-αα·αααααΆαα) αααααΆααα’ααααα·αα·αααααααα»αα’αα‘α»αααααααααΎαααααα·αααααΆαα’ααααααααΎαααΆαα
- αα»αααΆααααααααΆααααααΆαα½αααααΈααααΌαααΆαααααΆαααΎααααΈαααααααααααΆαα
ααα»ααααααα ααααΌα
ααΆα’αΆαααααα·αα·ααΆαααααΆααααααΉαααΆαααααΆααααααΆααΆ αα·αααΆαα’αα»ααααααΆαααααΆααααΆααααααΆαα "
__builtin_has_attribute ","__builtin_expect_with_probability "α αΎα"__builtin_speculation_safe_value "α αα»αααααααααααΈααααΌαααΆααααααααααααΆαααα»αααΆα α’ααα αα·αααααααα αααΆααα αααα ; - ααΆαααΆαααααααααααααααΆααααΆααααα αΌα/αα·αααααα’ααααΆαααααΌαααΆαα’αα»αααααααααΆααααΆααΆ Fortran α
- ααΆαααΆαααααααααΆαααααααααα Solaris 10 (*-*-solaris2.10) αα·α Cell/BE (Cell Broadband Engine SPU) ααααΌαααΆαααα·ααα α αΎαααΉαααααΌαααΆαααα αααα αααα»αααΆαα ααααααΆαααααααΆαααααααΆααα ααΆαααΆαααααααααΆααααααΆαααααααα Armv2, Armv3, Armv5 αα·α Armv5E ααααΌαααΆαααααααα ααΆαααΆαααααααααΆαα Intel MPX (αααααααααααααΆαααΆαα’αααα αα αΆα) ααααΌαααΆαααααααα
ααααα: opennet.ru