ืืืืจ ืฉื ื ืฉื ืคืืชืื, ืฉืืืจืจื ืืืืืช ืืืืืจ ืืืื ืืืช GCC 12.1, ืืืืืืจื ืืืฉืืขืืชืืช ืืจืืฉืื ื ืืขื ืฃ ืืืืฉ ืฉื GCC 12.x. ืืืชืื ืืกืืืืช ืืกืคืืจ ืืืืืืจื ืืืืฉื, ื ืขืฉื ืฉืืืืฉ ืืืจืกื 12.0 ืืชืืืื ืืคืืชืื, ืืืื ืงืฆืจ ืืคื ื ืฉืืจืืจื ืฉื GCC 12.1, ืืกื ืืฃ ืฉื GCC 13.0 ืืืจ ืืกืชืขืฃ, ืฉืขื ืืกืืกื ืชืืื ืืืืืืจื ืืืืืื ืืืื, GCC 13.1. ืึฐืึดืชึฐืจึทืงึตื. ื-23 ืืืื, ืืคืจืืืงื ืืืืื 35 ืฉื ืื ืืืืืืกืื ืฉื ืืืืืืจื ืืจืืฉืื ื ืฉื GCC.
ืฉืื ืืืื ืขืืงืจืืื:
- ื ืืกืคื ืชืืืื ืืคืืจืื ื ืืคืื ืืืืืื CTF (Compact Type Format), ืืืกืคืง ืืืกืื ืงืืืคืงืื ืฉื ืืืืข ืขื ืกืืื C, ืืืืืจืื ืืื ืคืื ืงืฆืืืช ืืกืืื ื ืืคืื ืืืืื. ืืืฉืจ ืืื ืืืืืข ืืืืืืืงืื ELF, ืืคืืจืื ืืืคืฉืจ ืฉืืืืฉ ืืืืืืืช ืชืืืื EFL ืืื ืืื ืืข ืืคืืืืช ื ืชืื ืื.
- ืืชืืืื ืืคืืจืื ืืืกืื ืืืืข ื ืืคืื ืืืืื "STABS", ืฉื ืืฆืจ ืืฉื ืืช ื-1980, ืืืฆืื ืืฉืืืืฉ.
- ืืขืืืื ื ืืฉืืช ืืืจืืืช ืืชืืืื ืืชืงื ื C2X ื-C++23 ืขืชืืืืื ืขืืืจ ืฉืคืืช C ื-C++. ืืืืืื, ื ืืกืคื ืชืืืื ืืืืืื "ืื consteval"; ืืืชืจ ืืืฉืชืืฉ ืืืืื ืืืจืืืื ืืื ืฉื ืคืื ืงืฆืื ("f(auto(g()))"); ืืฉืืืืฉ ืืืฉืชื ืื ืื ืืืืืืืื, ื-goto ืืืชืืืืืช ืืืชืจ ืืคืื ืงืฆืืืช ืืืืฆืืจืืช ื-constexpr; ื ืืกืคื ืชืืืื ืืืคืขืื ืืคืขืืื ืืื ืืงืก ืจื-ืืืืืื[]; ืืื, ืขืืืจ ืืืชื, ืืืืืืืช ืฉื ืืืืงื ืืชืืื ืืืจืืื ("for (ืืืืฆืขืืช T = int; T e : v)").
- ืืกืคืจืืื ืืกืื ืืจืืืช ืฉื C++ ืฉืืคืจื ืชืืืื ืืืืงืื ืื ืืกืืื ืืื ืฉื ืืกืื ืืจืืื C++20 ื-C++23. ื ืืกืคื ืชืืืื ืขืืืจ std::move_only_function, , std::basic_string::resize_and_overwrite, , ื-std::invoke_r. ืืืชืจ ืืืฉืชืืฉ ื-std::unique_ptr, std::vector, std::basic_string, std::optional ื-std::variant ืืคืื ืงืฆืืืช constexpr.
- ืืืืืช ืืงืืืืช ืฉื Fortran ืืกืคืงืช ืชืืืื ืืืื ืืืคืจื TS 29113, ืืืชืืจ ืืืืืืช ืืืืืืช ื ืืืืืช ืืื Fortran ืืงืื C.
- ื ืืกืคื ืชืืืื ืืชืืกืฃ __builtin_shufflevector(vec1, vec2, index1, index2, ...) ืฉื ืืกืคื ืืขืืจ ื-Clang, ืืืฆืืขื ืงืจืืื ืืืืื ืืืืฆืืข ืคืขืืืืช ืขืจืืื ืืขืจื ืืงืืืจ ื ืคืืฆืืช.
- ืืขืช ืฉืืืืฉ ืืจืืช ืืืืคืืืืืืฆืื "-O2", ืืืืงืืืจืืืฆืื ืืืคืขืืช ืืืจืืจืช ืืืื (ืืืฆืืื -ftree-vectorize ื-fvect-cost-model=ืืืื-ืืื ืืืคืขืืื). ืืืืื ืืืื ืืืื ืืืคืฉืจ ืืงืืืจืืืฆืื ืจืง โโืื ืืงืื ืืืืงืืืจื ืืืื ืืืืืืฃ ืืืืืืื ืืช ืืงืื ืืกืงืืจื ืฉืืืงืืืจ.
- ื ืืกืฃ ืืฆื "-ftrivial-auto-var-init" ืืื ืืืคืฉืจ ืืชืืื ืืคืืจืฉ ืฉื ืืฉืชื ืื ืืขืจืืื ืืื ืืขืงืื ืืืจ ืืขืืืช ืืืืกืื ื ืงืืืืช ืชืืจืคื ืืงืฉืืจืืช ืืฉืืืืฉ ืืืฉืชื ืื ืื ืืืืชืืืื.
- ืขืืืจ ืฉืคืืช C ื++C, ื ืืกืคื ืคืื ืงืฆืื ืืืื ืืช __builtin_dynamic_object_size ืืื ืืงืืืข ืืช ืืืืื ืฉื ืืืืืืงื, ืืชืืืืช ืืคืื ืงืฆืื ืืืื ื-Clang.
- ืขืืืจ ืฉืคืืช C ื++C, ื ืืกืคื ืชืืืื ืืชืืื ื "ืื ืืืื" (ืืืืืื, ื ืืชื ืืกืื ืคืื ืงืฆืืืช ืฉืืืฆืจื ืฉืืืื ืื โโืชื ืกื ืืืฉืชืืฉ ืืื).
- ืขืืืจ ืฉืคืืช C ื-C++, ื ืืกืคื ืชืืืื ืืื ืืืืช ืขืืืื ืืงืืื "#elifdef" ื-"#elifndef".
- ื ืืกืฃ ืืื "-Wbidi-chars" ืืื ืืืฆืื ืืืืจื ืื ื ืขืฉื ืฉืืืืฉ ืฉืืื ืืชืืื UTF-8, ืฉืื ืื ืืกืืจ ืฉืื ืืืฆื ืืงืกื ืื-ืืืืื ื.
- ื ืืกืฃ ืืื "-Warray-compare" ืืื ืืืืืืจ ืืขืช ื ืืกืืื ืืืฉืืืช ืฉื ื ืืืคืจื ืืื ืืืชืืืืกืื ืืืขืจืืื.
- ืืืืขืช ืชืงื ื OpenMP 5.0 ื-5.1 (Open Multi-Processing), ืืืืืืจืื ืืช ื-API ืืฉืืืืช ืืืืฉืื ืฉืืืืช ืชืื ืืช ืืงืืืืืช ืขื ืืขืจืืืช ืืจืืืืช ืืืืืช ืืืืืจืืืืืช (CPU+GPU/DSP) ืขื ืืืืจืื ืืฉืืชืฃ ืืืืืืืช ืืงืืืจืืืฆืื (SIMD) , ืืืฉืื.
- ืืืืขื ืืฉืืคืจืช ืฉื ืืคืจื ืืชืื ืืช ืืืงืืืื OpenACC 2.6, ืืืืืืจ ืืืื ืืืืจืืช ืคืขืืืืช ืขื GPUs ืืืขืืืื ืืืืืืื ืืืื NVIDIA PTX.
- ืชืืืื ืืืืจืืืช ืืืจืืืืช Intel AVX86-FP512 ืืกืื _Float16 ื ืืกืคื ื-backend ืฉื ืืฆืืจืช ืืงืื ืขืืืจ ืืจืืืืงืืืจืช x16.
- ืขืืืจ ืืจืืืืงืืืจืช x86, ื ืืกืคื ืืื ื ืืคื ื ืคืืืขืืืืช ืืืขืืืื ืื ืืจืืืช ืืืืฆืืข ืกืคืงืืืืืื ืฉื ืืืจืืืช ืืืืจ ืคืขืืืืช ืงืคืืฆื ืืืชื ืืืชื ืืช ืงืืืื. ืืืขืื ืืชืจืืฉืช ืขืงื ืขืืืื ืื ืข ืฉื ืืืจืืืช ืืื ืืืืจ ืืืจืืช ืืกื ืืฃ ืืืืืจืื (SLS, Straight Line Speculation). ืืื ืืืคืฉืจ ืืื ื, ืืืฆืขืช ืืืคืฉืจืืช "-mharden-sls".
- ืืืกืืฃ ืืืืื ืฉื ืฉืืืืฉ ืืืฉืชื ืื ืื ืืืืชืืืื ืื ืชื ืืกืืื ืื ืืกืืื ื. ื ืืกืคื ืชืืืื ืจืืฉืื ืืช ืื ืืชืื ืงืื ืืจืืื ืืชืืกืคืืช ืืืืืขืืช. ืืขืงื ืืืืจืื ืืฉืืคืจ. ืืงืื ืืขืืืื ืืืืืื ืืชื ื ืืชื ืืืืฉ.
- ื ืืกืคื 30 ืงืจืืืืช ืืืฉืืช ื-libgccjit, ืกืคืจืืื ืืฉืืชืคืช ืืืืืขืช ืืืืื ืงืื ืืชืืืืืื ืืืจืื ืืฉืืืืฉ ืื ื-JIT ืงืืืคืืืฆืื ืฉื bytecode ืืงืื ืืืื ื.
- ื ืืกืคื ืชืืืื ืืื ืื ืื CO-RE (Compile Once - Run Everywhere) ื-backend ืืืคืงืช BPF bytecode, ืืืืคืฉืจ ืื ืืืจืืื ืืช ืืงืื ืฉื ืชืืื ืืืช eBPF ืขืืืจ ืืืืช ืืื ืืงืก ืคืขื ืืืช ืืืื ืืืืฉืชืืฉ ืืืืขื ืืื ืืืจืกืื ืืืืื ืืืชืืื ืืช ืชืืื ืืช ืฉื ืืขื ื ืืคืืจืื ืืงืจื ื ื-BPF ืื ืืืื). CO-RE ืคืืชืจ ืืช ืืขืืืช ืื ืืืืืช ืฉื ืชืืื ืืช eBPF ืืืืืืืช, ืฉืืขืืจ ื ืืชื ืืื ืืืฉืชืืฉ ืืื ืจืง ืืืจืกืช ืืืืื ืฉืขืืืจื ืื ืืืืืจ, ืืืืืื ืฉืืืืงืื ืฉื ืืืื ืืื ืืืื ื ื ืชืื ืื ืืฉืชื ื ืืืจืกื ืืืจืกื.
- ืืงืฆื ืืืืืจื ืฉื RISC-V ืืืกืืฃ ืชืืืื ืืืจืืืืช ืืจืืืืงืืืจืช ืขืจืืืช ืืืจืืืช ืืืฉืืช zba, zbb, zbc ื-zbs, ืืื ืื ืืจืืืืช ISA ืขืืืจ ืคืขืืืืช ืงืจืืคืืืืจืคืืืช ืืงืืืจืืืช ืืกืงืืจืืืช. ืืืจืืจืช ืืืื, ื ืืชื ืช ืชืืืื ืืืคืจื RISC-V ISA 20191213. ืืืื -mtune=thead-c906 ื ืืกืฃ ืืื ืืืคืฉืจ ืืืคืืืืืืฆืืืช ืขืืืจ ืืืืืช T-HEAD c906.
- ืชืืืื ืืกืื __int128_t/integer(kind=16) ื ืืกืคื ืืงืฆื ืืขืืจืคื ืฉื ืืฆืืจืช ืืงืื ืขืืืจ GPUs ืฉื AMD ืืืืืกืกืื ืขื ืืืืงืจื-ืืจืืืืงืืืจื ืฉื GCN. ื ืืชื ืืืฉืชืืฉ ืืขื 40 ืงืืืฆืืช ืขืืืื ืืืืืืช ืืืฉืื (CU) ืืขื 16 ืืืืชืืช ืืืจืืืช (wavefront, ืกื ืฉื ืฉืจืฉืืจืื ืืืืืฆืขืื ืืืงืืื ืขื ืืื ืื ืืข ื- SIMD) ืืงืืืฆื. ืืขืืจ, ืจืง ืงืฆื ืืืจืื ืืื ืืื CU ืืืชืจ.
- ืืงืฆื ืืืืืจื ืฉื NVPTX, ืฉื ืืขื ืืืฆืืจ ืงืื ืืืืฆืขืืช ืืจืืืืงืืืจืช ืขืจืืช ืืืืจืืืช ืฉื NVIDIA PTX (Parallel Thread Execution), ืืืกืืฃ ืืช ืืืืืืช ืืืฉืชืืฉ ืืืืื "-march", "-mptx" ื-"-march-map". ืชืืืื ืืืืฉืืช ืขืืืจ PTX ISA sm_53, sm_70, sm_75 ื-sm_80. ืืจืืืืงืืืจืช ืืจืืจืช ืืืืื ืืื sm_30.
- ืืืืขืืช ืฉื ืคืื ืงืฆืืืช ืืืื ืืช ื ืืชืื ืืืืฉ ื-backend ืขืืืจ ืืขืืื PowerPC/PowerPC64/RS6000. ืืคืื ืงืฆืืืช ืืืืื ืืช __builtin_get_texasr, __builtin_get_texasru, __builtin_get_tfhar, __builtin_get_tfiar, __builtin_set_texasr, __builtin_set_texasru, __builtin_set_iltin_set and___tfhar
- ืชืืืื ืขืืืจ Arm Ampere-64 (-mcpu/-mtune ampere1), Arm Cortex-A1 (cortex-a510), Arm Cortex-A510 (cortex-a710) ื-Arm Cortex-X710 (cortex-x2). ื ืืกืคื ืชืืืื ืืืคืฉืจืืืืช ืืจืืืืงืืืจืช ARMv2 ืืืฉืืช ืืฉืืืืฉ ืขื ืืคืฉืจืืช "-march": armv8-a, armv8.7-a, armv8.8-a. ืืืกืคืช ืืืฉืื ืฉื ืคืื ืงืฆืืืช C ืืืืื ืืช ืืงืืืคืืืืจ (Intrinsics) ืืืขืื ื ืืืืืืช ืืฉืืืจืช ื ืชืื ืื ืืืืืจืื, ืขื ืืกืืก ืฉืืืืฉ ืืืืจืืืช ARM ืืืจืืืืช (ls9). ื ืืกืคื ืชืืืื ืืืืฆืช ืคืื ืงืฆืืืช memcpy, memmove ื- memset ืืืืฆืขืืช ืืจืืืช mopsoption ARM.
- ื ืืกืฃ ืืฆื ืืืืงื ืืืฉ "-fsanitize=shadow-call-stack" (ShadowCallStack), ืฉืืืื ืืจืืข ืจืง ืขืืืจ ืืจืืืืงืืืจืช AArch64 ืืขืืื ืืขืช ืื ืืืช ืงืื ืขื ืืคืฉืจืืช "-ffixed-r18". ืืืฆื ืืกืคืง ืืื ื ืืคื ื ืืืืคืช ืืชืืืช ืืืืืจื ืืคืื ืงืฆืื ืืืงืจื ืฉื ืืฆืคืช ืืืืจ ืขื ืืืืกื ืืช. ืืืืช ืืืื ื ืืื ืฉืืืจืช ืืชืืืช ืืืืืจื ืืขืจืืืช "ืฆื" ื ืคืจืืช ืืืืจ ืืขืืจืช ืืฉืืืื ืืคืื ืงืฆืื ืืืืืืจ ืืชืืืช ืื ืืคื ื ืืืฆืืื ืืืคืื ืงืฆืื.
ืืงืืจ: OpenNet.ru