ืฉื—ืจื•ืจ ื—ื‘ื™ืœืช ื”ืžื”ื“ืจ GCC 9

ืœืื—ืจ ืฉื ื” ืฉืœ ืคื™ืชื•ื— ืคื•ืจืกื ืฉื—ืจื•ืจ ืฉืœ ืงื‘ื•ืฆื” ื—ื™ื ืžื™ืช ืฉืœ ืžื”ื“ืจื™ื GCC 9.1, ื”ืžื”ื“ื•ืจื” ื”ื’ื“ื•ืœื” ื”ืจืืฉื•ื ื” ื‘ืกื ื™ืฃ ื”ื—ื“ืฉ ืฉืœ GCC 9.x. ื‘ื”ืชืื ืœ ืชื›ื ื™ืช ื—ื“ืฉื” ืžืกืคืจื™ ืฉื—ืจื•ืจ, ื’ืจืกื” 9.0 ืฉื™ืžืฉื” ื‘ืชื”ืœื™ืš ื”ืคื™ืชื•ื—, ื•ื–ืžืŸ ืงืฆืจ ืœืคื ื™ ื™ืฆื™ืืช GCC 9.1 ื›ื‘ืจ ื”ืกืชืขืฃ ืกื ื™ืฃ GCC 10.0, ืฉืขืœ ื‘ืกื™ืกื• ืชื™ื•ื•ืฆืจ ื”ืžื”ื“ื•ืจื” ื”ืžืฉืžืขื•ืชื™ืช ื”ื‘ืื”, GCC 10.1.

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 (ื˜ื‘ืœืช ืงืคื™ืฆื”, ื‘ื“ื™ืงืช ืกื™ื‘ื™ื•ืช, ืขืฅ ื”ื—ืœื˜ื•ืช) ื‘ื”ืชืื ืœืžืฆื‘ื™ื. ื ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœืฉื ื•ืช ืคื•ื ืงืฆื™ื•ืช ืœื™ื ื™ืืจื™ื•ืช ื”ื›ื•ืœืœื•ืช ื‘ื™ื˜ื•ื™ Switch ื‘ืืžืฆืขื•ืช ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” "-ftree-switch-conversion" (ืœื“ื•ื’ืžื”, ืงื‘ื•ืฆืช ืชื ืื™ื ื›ืžื• "ืžืงืจื” 2: ืื™ืš = 205; ื”ืคืกืงื”; ืžืงืจื” 3: ื›ื™ืฆื“ = 305; ื”ืคืกืงื” ;โ€ ื™ื•ืžืจ ืœ-"100 * ืื™ืš + 5";
  • ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื‘ื™ืŸ-ื”ืœื™ื›ื™ื ืžืฉื•ืคืจื•ืช. ื”ื’ื“ืจื•ืช ื”ืคืจื™ืกื” ื”ืžื•ื˜ื‘ืขื•ืช ื”ื•ืชืืžื• ืœื‘ืกื™ืกื™ ืงื•ื“ C++ ืžื•ื“ืจื ื™ื™ื ื•ื”ื•ืจื—ื‘ื• ืขื ืคืจืžื˜ืจื™ื ื—ื“ืฉื™ื max-inline-insns-small, max-inline-insns-size, uninlined-function-insns, uninlined-function-time, uninlined-thunk-inss ื•-uninlined -ื–ืžืŸ ื–ืžืŸ. ื“ื™ื•ืง ื•ืื’ืจืกื™ื‘ื™ื•ืช ืžืฉื•ืคืจื™ื ืฉืœ ื”ืคืจื“ืช ืงื•ื“ ืงืจ/ื—ื. ืžื“ืจื’ื™ื•ืช ืžืฉื•ืคืจืช ืขื‘ื•ืจ ื’ื“ื•ืœื™ื ืžืื•ื“ ื™ื—ื™ื“ื•ืช ืชืจื’ื•ื (ืœื“ื•ื’ืžื”, ื‘ืขืช ื™ื™ืฉื•ื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื‘ืฉืœื‘ ื”ืงื™ืฉื•ืจ ืœืชื•ื›ื ื™ื•ืช ื’ื“ื•ืœื•ืช);
  • ืฉื•ืคืจ ืžื ื’ื ื•ืŸ ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื”ืžื‘ื•ืกืก ืขืœ ืชื•ืฆืื•ืช ืคืจื•ืคื™ืœ ืงื•ื“ (PGO โ€“ Profile-guided Optimization) ืืฉืจ ืžื™ื™ืฆืจ ืงื•ื“ ืื•ืคื˜ื™ืžืœื™ ื™ื•ืชืจ ืขืœ ืกืžืš ื ื™ืชื•ื— ืžืืคื™ื™ื ื™ ื‘ื™ืฆื•ืข ื”ืงื•ื“. ืืคืฉืจื•ืช ืกื™ื›ื•ื "-fprofile-ืฉื™ืžื•ืฉ" ื›ื•ืœืœ ื›ืขืช ืืช ืžืฆื‘ื™ ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” "-fversion-loops-for-stredes", "-floop-interchange", "-floop-unroll-and-jam" ื•-"-ftree-loop-distribution". ื”ื•ืกืจ ื”ื›ืœืœืช ื”ื™ืกื˜ื•ื’ืจืžื•ืช ืขื ืžื•ื ื™ื ื‘ืงื‘ืฆื™ื, ืžื” ืฉื”ืคื—ื™ืช ืืช ื’ื•ื“ืœ ื”ืงื‘ืฆื™ื ืขื ืคืจื•ืคื™ืœื™ื (ื”ื™ืกื˜ื•ื’ืจืžื•ืช ื ื•ืฆืจื•ืช ื›ืขืช ืชื•ืš ื›ื“ื™ ื‘ื™ืฆื•ืข ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื‘ืžื”ืœืš ื”ืงื™ืฉื•ืจ);
  • ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืฉืœ ื–ืžืŸ ืงื™ืฉื•ืจ ืžืฉื•ืคืจื•ืช (LTO). ื ื™ืชื ื” ืคื™ืฉื•ื˜ ื˜ื™ืคื•ืกื™ื ืœืคื ื™ ื™ืฆื™ืจืช ื”ืชื•ืฆืื”, ืžื” ืฉืืคืฉืจ ืœื”ืงื˜ื™ืŸ ืžืฉืžืขื•ืชื™ืช ืืช ื’ื•ื“ืœ ืงื‘ืฆื™ ืื•ื‘ื™ื™ืงื˜ LTO, ืœื”ืคื—ื™ืช ืืช ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ื‘ืฉืœื‘ ื”ืงื™ืฉื•ืจ ื•ืœืฉืคืจ ืืช ื”ื”ืงื‘ืœื” ืฉืœ ื”ืคืขื•ืœื•ืช. ืžืกืคืจ ื”ืžื—ื™ืฆื•ืช (-param lto-partitions) ื”ื•ื’ื“ืœ ืž-32 ืœ-128, ืžื” ืฉืžืฉืคืจ ืืช ื”ื‘ื™ืฆื•ืขื™ื ื‘ืžืขืจื›ื•ืช ืขื ืžืกืคืจ ืจื‘ ืฉืœ ืคืชื™ืœื™ื ืฉืœ CPU. ื ื•ืกืฃ ืคืจืžื˜ืจ ื›ื“ื™ ืœืฉืœื•ื˜ ื‘ืžืกืคืจ ืชื”ืœื™ื›ื™ ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”
    "-param lto-max-streaming-parallelism";

    ื›ืชื•ืฆืื” ืžื›ืš, ื‘ื”ืฉื•ื•ืื” ืœ-GCC 8.3, ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืฉื”ื•ืฆื’ื• ื‘-GCC 9 ืžื•ึผืชึธืจ ืœื”ืคื—ื™ืช ืืช ื–ืžืŸ ื”ื”ื™ื“ื•ืจ ืฉืœ Firefox 5 ื•-LibreOffice 66 ื‘ื›-6.2.3%. ื’ื•ื“ืœ ืงื‘ืฆื™ ื”ืื•ื‘ื™ื™ืงื˜ ื™ืจื“ ื‘-7%. ื–ืžืŸ ื”ืงื™ืฉื•ืจ ื‘ืžืขื‘ื“ 8 ืœื™ื‘ื•ืช ื™ืจื“ ื‘-11%. ืฉืœื‘ ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื”ืจืฆื™ืฃ ืฉืœ ืฉืœื‘ ื”ืงื™ืฉื•ืจ ืžื”ื™ืจ ื›ืขืช ื‘-28% ื•ืฆื•ืจืš 20% ืคื—ื•ืช ื–ื™ื›ืจื•ืŸ. ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ืฉืœ ื›ืœ ืžืขื‘ื“ ื‘ืฉืœื‘ ื”ืžืงื‘ื™ืœ ืฉืœ LTO ื™ืจื“ื” ื‘-30%;

  • ืจื•ื‘ ืžืคืจื˜ ื”ืชื›ื ื•ืช ื”ืžืงื‘ื™ืœ ืžื™ื•ืฉื ืขื‘ื•ืจ ืฉืคื•ืช C, C++ ื•-Fortran OpenACC 2.5, ื”ืžื’ื“ื™ืจ ื›ืœื™ื ืœื”ื•ืจื“ืช ืคืขื•ืœื•ืช ืขืœ GPUs ื•ืžืขื‘ื“ื™ื ืžื™ื•ื—ื“ื™ื ื›ื’ื•ืŸ NVIDIA PTX;
  • ืชืžื™ื›ื” ื—ืœืงื™ืช ื‘ืชืงืŸ ื™ื•ืฉืžื” ืขื‘ื•ืจ C ื•-C++ ืคืชื— ืืช MP 5.0 (Open Multi-Processing), ื”ืžื’ื“ื™ืจ ืืช ื”-API ื•ืฉื™ื˜ื•ืช ื™ื™ืฉื•ื ืฉื™ื˜ื•ืช ืชื›ื ื•ืช ืžืงื‘ื™ืœื•ืช ืขื‘ื•ืจ ืฉืคื•ืช C, C++ ื•-Fortran ื‘ืžืขืจื›ื•ืช ืžืจื•ื‘ื•ืช ืœื™ื‘ื•ืช ื•ื”ื™ื‘ืจื™ื“ื™ื•ืช (CPU+GPU/DSP) ืขื ื™ื—ื™ื“ื•ืช ื–ื™ื›ืจื•ืŸ ื•ื•ืงื˜ื•ืจื™ื–ืฆื™ื” ืžืฉื•ืชืคื•ืช (SIMD) ;
  • ืื–ื”ืจื•ืช ื—ื“ืฉื•ืช ื ื•ืกืคื• ืขื‘ื•ืจ ืฉืคืช C: "-ื›ืชื•ื‘ืช-ืฉืœ-ื—ื‘ืจ-ืืจื•ื–" (ืขืจืš ืžืฆื‘ื™ืข ืœื ืžื™ื•ืฉืจ ืœื—ื‘ืจ ื“ื—ื•ืก ืฉืœ ืžื‘ื ื” ืื• ืื™ื’ื•ื“) ื•
    ยซ-ืขืจืš ื•ืื‘ืกื•ืœื•ื˜" (ื‘ืขืช ื’ื™ืฉื” ืœืคื•ื ืงืฆื™ื•ืช ืœื—ื™ืฉื•ื‘ ืขืจืš ืžื•ื—ืœื˜, ืื ื™ืฉ ืคื•ื ืงืฆื™ื” ืžืชืื™ืžื” ื™ื•ืชืจ ืœืืจื’ื•ืžื ื˜ ืฉืฆื•ื™ืŸ, ืœืžืฉืœ, ื™ืฉ ืœื”ืฉืชืžืฉ ื‘-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 ื”ื•ื›ืจื–ื” ื™ืฆื™ื‘ื”. ื‘-frontend, ื™ื›ื•ืœื•ืช ื”ืฉืคื” ืฉืœ C++17 ืžื™ื•ืฉืžื•ืช ื‘ืžืœื•ืืŸ, ื•ื‘-libstdc++, ืคื•ื ืงืฆื™ื•ืช ื”ืกืคืจื™ื™ื” ื”ืžื•ื’ื“ืจื•ืช ื‘ืชืงืŸ ืงืจื•ื‘ื•ืช ืœื™ื™ืฉื•ื ืžืœื;
  • ื ืžืฉืš ื™ื™ืฉื•ื ืืœืžื ื˜ื™ื ืฉืœ ืชืงืŸ C++2a ื”ืขืชื™ื“ื™. ืœื“ื•ื’ืžื”, ื ื•ืกืคื” ื”ื™ื›ื•ืœืช ืœื›ืœื•ืœ ื˜ื•ื•ื—ื™ื ื‘ืžื”ืœืš ื”ืืชื—ื•ืœ, ื”ื•ื˜ืžืขื• ื”ืจื—ื‘ื•ืช ืœื‘ื™ื˜ื•ื™ื™ ืœืžื‘ื“ื”, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืื™ื‘ืจื™ื ืจื™ืงื™ื ืฉืœ ืžื‘ื ื™ ื ืชื•ื ื™ื ื•ืชื›ื•ื ื•ืช ืกื‘ื™ืจื•ืช/ืœื ืกื‘ื™ืจื•ืช, ื ื™ืชื ื” ื”ื™ื›ื•ืœืช ืœืงืจื•ื ืœืคื•ื ืงืฆื™ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื‘ื‘ื™ื˜ื•ื™ื™ื ืžื•ืชื ื™ื , ื•ื›ื•.
    ื›ื“ื™ ืœื”ืคืขื™ืœ ืชืžื™ื›ื” ื‘-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::lerp function. , 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"

  • ื”ื•ื ื›ื•ืœืœ ืงืฆื” ืื—ื•ืจื™ ืœื”ืคืงืช ืงื•ื“ ืขื‘ื•ืจ GPUs ืฉืœ AMD ื”ืžื‘ื•ืกืก ืขืœ ื”ืžื™ืงืจื•-ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉืœ GCN. ื”ื”ื˜ืžืขื” ืžื•ื’ื‘ืœืช ื›ื™ื•ื ืœื”ื™ื“ื•ืจ ืฉืœ ื™ื™ืฉื•ืžื™ื ืขื ื”ืœื™ื›ื™ ื”ืœื™ื›ื” ื‘ื•ื“ื“ื™ื (ืชืžื™ื›ื” ื‘ื‘ื™ืฆื•ืข ื—ื™ืฉื•ื‘ื™ ืจื™ื‘ื•ื™ ื”ืœื™ื›ื™ื™ื ื‘ืืžืฆืขื•ืช OpenMP ื•-OpenACC ืชื•ืฆืข ืžืื•ื—ืจ ื™ื•ืชืจ) ื•ืชืžื™ื›ื” ื‘-GPU Fiji ื•- Vega 10;
  • ื ื•ืกืฃ backend ื—ื“ืฉ ืขื‘ื•ืจ ืžืขื‘ื“ื™ื OpenRISC;
  • ื ื•ืกืฃ ืงืฆื” ืื—ื•ืจื™ ืขื‘ื•ืจ ืžืขื‘ื“ื™ื C-SKY V2, ื”ืžื™ื•ืฆืจ ืขืœ ื™ื“ื™ ื”ื—ื‘ืจื” ื”ืกื™ื ื™ืช ื‘ืื•ืชื• ืฉื ืขื‘ื•ืจ ืžื›ืฉื™ืจื™ ืฆืจื™ื›ื” ืฉื•ื ื™ื;
  • ื›ืœ ืืคืฉืจื•ื™ื•ืช ืฉื•ืจืช ื”ืคืงื•ื“ื” ืฉืžืคืขื™ืœื•ืช ืขืจื›ื™ ื‘ืชื™ื ืชื•ืžื›ื•ืช ื‘ืกื™ื•ืžื•ืช kb, KiB, MB, MiB, GB ื•- GiB;
  • ืžื•ื˜ืžืข ื”ืืคืฉืจื•ืช "-flive-patching=[inline-only-static|inline-clone]" ืžืืคืฉืจืช ืœืš ืœื”ืฉื™ื’ ืงื•ืžืคื™ืœืฆื™ื” ื‘ื˜ื•ื—ื” ืขื‘ื•ืจ ืžืขืจื›ื•ืช ืชื™ืงื•ืŸ ื—ื™ื™ื ืขืงื‘ ืฉืœื™ื˜ื” ืžืจื•ื‘ืช ืจืžื•ืช ืขืœ ื”ืฉื™ืžื•ืฉ ื‘ืคืจื•ืฆื“ื•ืจื•ืช (IPA) ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช;
  • ื ื•ืกืคื” ืืคืฉืจื•ืช "--ื”ืฉืœืžื”" ืœืฉืœื™ื˜ื” ืขื“ื™ื ื” ื‘ื”ืฉืœืžืช ื”ืื•ืคืฆื™ื•ืช ื‘ืขืช ืฉื™ืžื•ืฉ ื‘-bash;
  • ื›ืœื™ ื”ืื‘ื—ื•ืŸ ืžืกืคืงื™ื ืชืฆื•ื’ื•ืช ืฉืœ ืงื˜ืขื™ ื˜ืงืกื˜ ืžืงื•ืจ ื”ืžืฆื™ื™ื ื™ื ืืช ืžืกืคืจ ื”ืฉื•ืจื” ื•ืกื™ืžื•ืŸ ื—ื–ื•ืชื™ ืฉืœ ืžื™ื“ืข ืงืฉื•ืจ, ื›ื’ื•ืŸ ืกื•ื’ื™ ืื•ืคืจื ื“ื™ื. ื›ื“ื™ ืœื”ืฉื‘ื™ืช ืืช ื”ืฆื’ืช ืžืกืคืจื™ ื”ืฉื•ืจื•ืช ื•ื”ืชื•ื•ื™ื•ืช, ื”ืืคืฉืจื•ื™ื•ืช "-fno-diagnostics-show-line-numbers" ื•-"-fno-diagnostics-show-labels" ืžืกื•ืคืงื•ืช;

    ืฉื—ืจื•ืจ ื—ื‘ื™ืœืช ื”ืžื”ื“ืจ GCC 9

  • ืžื•ึผืจื—ึธื‘ ื›ืœื™ื ืœืื‘ื—ื•ืŸ ืฉื’ื™ืื•ืช ื‘ืงื•ื“ C++, ืฉื™ืคื•ืจ ืงืจื™ืื•ืช ื”ืžื™ื“ืข ืขืœ ื”ื’ื•ืจืžื™ื ืœืฉื’ื™ืื•ืช ื•ื”ื“ื’ืฉืช ืคืจืžื˜ืจื™ื ื‘ืขื™ื™ืชื™ื™ื;

    ืฉื—ืจื•ืจ ื—ื‘ื™ืœืช ื”ืžื”ื“ืจ GCC 9

  • ื ื•ืกืคื” ืืคืฉืจื•ืช "-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" ืœืฉืœื™ื˜ื” ื‘ื™ื™ืฉื•ืจ ืžื—ืกื ื™ืช ื•ืฉื™ืžื•ืฉ ื‘ืžืฆื‘ื™ ื›ืชื•ื‘ืช (ื›ืชื™ื‘ื” ื‘ืœื‘ื“ ืื• ืงืจื™ืื” ืžื“ื•ื™ืงืช) ืœืžืฉืชื ื™ื ืกื˜ื˜ื™ื™ื ื‘ืžื”ืœืš ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื‘ื™ืŸ-ื”ืœื™ื›ื™ื;
  • ืคื•ื ืงืฆื™ื•ืช ืžื•ื‘ื ื•ืช ื—ื“ืฉื•ืช ืžื•ืฆื’ื•ืช ื›ื“ื™ ืœืฉืœื•ื˜ ื‘ืงืฉื™ืจื” ืฉืœ ืชื›ื•ื ื•ืช ื›ืžื• ื’ื ื‘ื”ืชื ื”ื’ื•ืช ื”ืงืฉื•ืจื” ืœื—ื™ื–ื•ื™ ืขื ืคื™ื ื•ื‘ื™ืฆื•ืข ืคืงื•ื“ื•ืช ืกืคืงื•ืœื˜ื™ื‘ื™ื•ืช: "__ืชื›ื•ื ื”_ื™ืฉ_ืžื•ื‘ื ื™ืชยซWonderful__ื‘ื ื•ื™_ืฆืคื•ื™_ืขื_ืกื‘ื™ืจื•ืช"ื•"__ืขืจืš_ื‘ื˜ื•ื—_ืžื•ื‘ื ื”_ืกืคืงื•ืœืฆื™ื”". ื ื•ืกืคื” ืชื›ื•ื ื” ื—ื“ืฉื” ืขื‘ื•ืจ ืคื•ื ืงืฆื™ื•ืช, ืžืฉืชื ื™ื ื•ืกื•ื’ื™ื ื”ืขืชืง;
  • ืชืžื™ื›ื” ืžืœืื” ื‘ืงืœื˜/ืคืœื˜ ืืกื™ื ื›ืจื•ื ื™ ื™ื•ืฉืžื” ืขื‘ื•ืจ ืฉืคืช Fortran;
  • ื”ืชืžื™ื›ื” ื‘ืคืœื˜ืคื•ืจืžื•ืช Solaris 10 (*-*-solaris2.10) ื•-Cell/BE (Cell Broadband Engine SPU) ื”ื•ืฆืื” ืžืฉื™ืžื•ืฉ ื•ื”ื™ื ืชื•ืกืจ ื‘ืžื”ื“ื•ืจื” ื”ื’ื“ื•ืœื” ื”ื‘ืื”. ื”ืชืžื™ื›ื” ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช Armv2, Armv3, Armv5 ื•- Armv5E ื”ื•ืคืกืงื”. ื”ืชืžื™ื›ื” ื‘-Intel MPX (ื”ืจื—ื‘ื•ืช ื”ื’ื ืช ื–ื™ื›ืจื•ืŸ) ื”ื•ืคืกืงื”.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”