ืืืืจ ืฉืืฉื ืืืืฉืื ืฉื ืคืืชืื, ืืืฆืื ืืฉืืจืืจ ืฉื ืคืจืืืงื LLVM 12.0 - ืขืจืืช ืืืื ืชืืืืช GCC (ืืืืจืื, ืืืคืืืืืืฆืื ืืืืืืื ืงืื) ืืืจืืืื ืชืืื ืืืช ืืงืื ืืื ืืื ืฉื ืืืจืืืช ืืืจืืืืืืืช ืืืืืืช RISC (ืืืื ื ืืืจืืืืืืช ืืจืื ื ืืืื ืขื ืืขืจืืช ืืืคืืืืืืฆืื ืืจืืืช ืจืืืช). ื ืืชื ืืืืืจ ืืช ืืคืกืืืืืงืื ืฉื ืืฆืจ ืืืืฆืขืืช ืืืืจ JIT ืืืืจืืืช ืืืื ื ืืฉืืจืืช ืืืื ืืืฆืืข ืืชืืื ืืช.
ืฉืืคืืจืื ื-Clang 12.0:
- ืชืืืื ืืชืืื ืืช "ืกืืืจ" ื"ืื ืกืืืจ" ืืืืฆืขืืช ืืชืงื C++20 ืืืฉืื ืืืืคืขืื ืืืจืืจืช ืืืื, ืื ืฉืืืคืฉืจ ืืืืืื ืืงืื ืืืืข ืขื ืืืกืชืืจืืช ืฉืืืื ื ืืืืชื ื ืืืคืขื (ืืืืืื, "[[ืกืืืจ ]] if (ืืงืจืื > 0) {โ).
- ื ืืกืคื ืชืืืื ืืืขืืื AMD Zen 3 (-march=znver3), Intel Alder Lake (-march=alderlake) ื-Intel Sapphire Rapids (-march=sapphirerapids).
- ื ืืกืคื ืชืืืื ืืืืื "-march=x86-64-v[234]" ืืืืืจืช ืจืืืช ืืจืืืืงืืืจืช x86-64 (v2 - ืืืกื ืืจืืืืช SSE4.2, SSSE3, POPCNT ื-CMPXCHG16B; v3 - AVX2 ื-MOVBE; v4 - AVX-512 ).
- ื ืืกืคื ืชืืืื ืืืขืืื Arm Cortex-A78C (cortex-a78c), Arm Cortex-R82 (cortex-r82), Arm Neoverse V1 (neoverse-v1), Arm Neoverse N2 (neoverse-n2) ื-Fujitsu A64FX (a64fx). ืืืืืื, ืืื ืืืคืฉืจ ืืืคืืืืืืฆืืืช ืขืืืจ ืืขืืื Neoverse-V1, ืืชื ืืืื ืืฆืืื "-mcpu=neoverse-v1".
- ืขืืืจ ืืจืืืืงืืืจืช AArch64, ื ืืกืคื ืืืื ืืืืจ ืืืฉืื "-moutline-atomics" ื-"-mno-outline-atomics" ืืื ืืืคืฉืจ ืื ืืืฉืืืช ืคืื ืงืฆืืืช ืืกืืืขืืช ืืคืขืืื ืืืืืืช, ืืืื "__aarch64_cas8_relax". ืคืื ืงืฆืืืช ืืืื ืืืืืช ืืืื ืืจืืฆื ืื ืชืืืืช LSE (Large System Extensions) ืืืื ื ืืืฉืชืืฉืืช ืืืืจืืืช ืืืขืื ืืืืืื ืฉืกืืคืงื ืื ืืืืจืืช ืืฉืืืืฉ ืืืืจืืืช LL/SC (Load-link/store-conditioned) ืืกื ืืจืื.
- ื ืืกืคื ืืคืฉืจืืช "-fbinutils-version" ืืืืืจืช ืืจืกืช ืืืขื ืฉื ืืืืืช binutils ืืฆืืจื ืชืืืืืช ืขื ืืชื ืืืืช ืงืืฉืืจืื ืืืจืืืื ืืฉื ืื ืืืชืจ.
- ืขืืืจ ืงืืฆื ืืคืขืื ELF, ืืืฉืจ ืืื "-gz" ืืฆืืื, ืืืืกื ืฉื ืืืืข ืืืชืืจ ืืืืื ืืืืฆืขืืช ืกืคืจืืืช zlib ืืืคืขืืช ืืืจืืจืช ืืืื (gz=zlib). ืงืืฉืืจ ืงืืฆื ืืืืืืืงื ืืืชืงืืืื ืืืจืฉ lld ืื GNU binutils 2.26+. ืืื ืืฉืืืจ ืชืืืืืช ืขื ืืจืกืืืช ืืฉื ืืช ืืืชืจ ืฉื binutils, ืืชื ืืืื ืืฆืืื "-gz=zlib-gnu".
- ืืืฆืืืข 'ืื' ืืขืืื ืืขืช ืขื ืืืืงืืช ืื-null ื-derreferenceable(N). ืืื ืืืกืืจ ืืช ืืชืืื ื nonnull, ืื ืืชื ืฆืจืื ืืืฉืชืืฉ ืืขืจืื NULL, ืืชื ืืืื ืืืฉืชืืฉ ืืืคืฉืจืืช "-fdelete-null-pointer-checks".
- ืืคืืืคืืจืืช ืืื ืืงืก, ืืฆื "-fasynchronous-unwind-tables" ืืืคืขื ืขืืืจ ืืจืืืืงืืืจืืช AArch64 ื-PowerPC ืืืฆืืจืช ืืืืืืช ืฉืืืืช ืืืืื, ืืื ื-GCC.
- ื-"#pragma clang loop vectorize_width" ืืืกืืคื ืืช ืืืืืืช ืืฆืืื ืืช ืืืคืฉืจืืืืช "fixed" (ืืจืืจืช ืืืื) ื-"Scalable" ืืืืืจืช ืฉืืืช ืืืืงืืืจืืืฆืื. ืืฆื ื"ืืืจืื", ืืื ืชืืืช ืืืืจื ืืืืงืืืจ, ืืื ื ืืกืืื ื ืื ืืชื ืืืฉืชืืฉ ืื ืืืืืจื ืฉืชืืืืช ืืืงืืืจืืืฆืื ื ืืชื ืช ืืืจืืื.
- ืชืืืื ืืฉืืคืจืช ืืคืืืคืืจืืช Windows: ืืืื ื ืืืืืืื ืืื ืืจืืื ืจืฉืืืื ืขืืืจ Windows ืืืขืจืืืช Arm64, ืืืื ืืืืืจ Clang, ืืงืฉืจ LLD ืืกืคืจืืืช ืืื ืจืืฆื ืืืืจ-rt. ืืขืช ืื ืืื ืขืืืจ ืคืืืคืืจืืืช ืืขื ืฉื MinGW, ืืชืืืกืคืช ืกืืืืช .exe, ืื ืืขืช ืงืืืคืืืฆืื ืฆืืืืช.
- ืืืืืืืช ืืงืฉืืจืืช ืืชืืืื ื-OpenCL, OpenMP ื-CUDA ืืืจืืื. ื ืืกืคื ืืคืฉืจืืืืช "-cl-std=CL3.0" ื-"-cl-std=CL1.0" ืืื ืืืืืจ ืืคืฉืจืืืืช ืืืงืจื ืขืืืจ OpenCL 3.0 ื-OpenCL 1.0. ืืื ืืืืืื ืืืจืืื.
- ื ืืกืคื ืชืืืื ืืืืจืืืช HRESET, UINTR ื-AVXVNNI ืืืืืฉืืืช ืืืืง ืืืืขืืืื ืืืืกืกื x86.
- ืืืขืจืืืช x86, ืืชืืืื ืืืคืฉืจืืช "-mtune=" ืืืคืขืืช, ืื ืฉืืืคืฉืจ ืืืคืืืืืืฆืืืช ืืืงืจื-ืืจืืืืงืืื ืืืช ื ืืืจืืช ืืื ืงืฉืจ ืืขืจื "-march=".
- ืืื ืชื ืืกืืื ืฉืืคืจ ืขืืืื ืฉื ืืื ืคืื ืงืฆืืืช POSIX ืืฉืืคืจ ืืฉืืขืืชืืช ืืช ืืงืืืขื ืฉื ืืชืืฆืื ืฉื ืคืขืืืืช ืืืชื ืืช ืืืฉืจ ืืฉ ืืกืคืจ ืขืจืืื ืกืืืืื ืืืฉืืืื. ืืืืงืืช ืืืฉืืช ื ืืกืคื: fuchia.HandleChecker (ืืืืืจ ืืืืืช ืืืื ืื), webkit.UncountedLambdaCapturesChecker webkit ื-alpha.webkit.UncountedLocalVarsChecker (ืืืงื ืืืฉืืื ืืช ืืืืืจืืืืช ืฉื ืขืืืื ืขื ืืฆืืืขืื ืืงืื ืืื ืืข ืฉื WebKit).
- ืืืืืืืื ืืืฉืืฉืื ืืืงืฉืจ ืฉื ืงืืืขืื, ืืฉืืืืฉ ืืคืื ืงืฆืืืช ืืืืื ืืช __builtin_bitreverse*, __builtin_rotateleft*, __builtin_rotateleft*, _mm_popcnt*, _bit_scan_forward, __bsfd, __bsfq, __bit_scan_reverse,__bsr,__bsd,__bsd, __bsd,wap __ ืืืชืจ bswapq , _castf*, __rol* ื__ror*.
- ื ืืกืคื ืืคืฉืจืืช BitFieldColonSpacing ืืืื ืืฉืืจืืช ืืคืืจืื clang ืืื ืืืืืจ ืืช ืืืจืืืืื ืกืืื ืืืืื, ืขืืืืืช ืืืืืจืืช ืฉืืืช.
- ืฉืจืช ืืืืืื clangd (Clang Server) ืืคืืืคืืจืืช ืืื ืืงืก ืืคืืืช ืืฉืืขืืชืืช ืืช ืฆืจืืืช ืืืืืจืื ืืืืื ืคืขืืื ืืจืืืช ืืืื (ื ืืชื ืืช ืงืจืืืืช ืชืงืืคืชืืืช ื-malloc_trim ืืื ืืืืืืจ ืืคื ืืืืจืื ืคื ืืืื ืืืขืจืืช ืืืคืขืื).
ืืืืืฉืื ืืจืืืืื ื-LLVM 12.0:
- ืืชืืืื ืืืื ืืื ืืื llvm-build ืฉื ืืชื ื-Python ืืืคืกืงื, ืืืืงืื ืืืช ืืคืจืืืงื ืขืืจ ืืืืืืื ืืฉืืืืฉ ืืืขืจืืช ื-Build CMake.
- ืืงืฆื ืืืืืจื ืฉื ืืจืืืืงืืืจืช AArch64, ืืชืืืื ืืคืืืคืืจืืช Windows ืฉืืคืจื: ืืืืื ืืฆืืจื ื ืืื ื ืฉื ืคืื assembler ืขืืืจ ืืขืจืืืช ืืืขื ืฉื Windows, ืืฆืืจืช ื ืชืื ืื ืขื ืฉืืืืช ืืืืื ืขืืจ ืืืคืืืืืืฆืื (ืืืืื ืฉื ื ืชืื ืื ืืืื ืืฆืืืฆื ื-60 %), ื ืืกืคื ืื ืืืืช .seh_* ืืืืืืช ืืืฆืืจ ื ืชืื ื ืฉืืจืืจ ืืืืฆืขืืช assembler.
- ืืงืฆื ืืืืืจื ืฉื ืืจืืืืงืืืจืช PowerPC ืืืื ืืืคืืืืืืฆืืืช ืืืฉืืช ืขืืืจ ืืืืืืช ืืคืจืืกื ืืืืืขืช, ืชืืืื ืืืจืืืช ืืืขืืื Power10, ืชืืกืคืช ืชืืืื ืืืืจืืืช MMA ืขืืืจ ืื ืืคืืืฆืื ืฉื ืืืจืืฆื โโืืชืืืื ืืฉืืคืจืช ืืืขืจืืช ืืืคืขืื AIX.
- ืืงืฆื ืืืืืจื x86 ืืืกืืฃ ืชืืืื ืขืืืจ ืืขืืื AMD Zen 3, Intel Alder Lake ื-Intel Sapphire Rapids, ืืื ืื ืืืจืืืช ืืขืื HRESET, UINTR ื-AVXVNNI. ืชืืืื ื-MPX (ืืจืืืืช ืืื ืช ืืืืจืื) ืืืืืงืช ืืฆืืืขืื ืืื ืืืืื ืฉืืืืืืช ืืืืืจืื ืืื ื ื ืชืืืื ืขืื (ืืื ืืืืืื ืื ืืื ื ื ืคืืฆื ืืืืจ ืืืกืจื ื-GCC ืื-clang). ื ืืกืคื ืชืืืื ื-assembler ืขืืืจ ืืงืืืืืืช {disp32} ื-{disp8} ืืกืืืืช .d32 ื-.d8 ืืื ืืฉืืื ืืืืื ืฉื ืงืืืื ืื ืงืคืืฆืืช ืืืคืจื ื. ื ืืกืคื ืชืืื ื ืืืฉื "tune-cpu" ืืื ืืฉืืื ืืืืืื ืฉื ืืืคืืืืืืฆืืืช ืืืงืจื-ืืจืืืืงืืื ืืืช.
- ืืฆื ืืืฉ "-fsanitize=unsigned-shift-base" ื ืืกืฃ ืืืืื ืืืขืื ืฉื ืืกืคืจืื ืฉืืืื (ืืืืื ืืกืคืจืื ืฉืืืื, "-fsanitize=integer") ืืื ืืืืืช ืืฆืคืืช ืฉื ืืกืคืจืื ืฉืืืื ืืื ืกืืื ืื ืืืืจ ืืขืืจ ืกืืืืืช ืฉืืืื.
- ืืืืืื ืฉืื ืื (asan, cfi, lsan, msan, tsan, ubsan sanitizer) ื ืืกืคื ืชืืืื ืืืคืฆืืช ืืื ืืงืก ืขื ืกืคืจืืืช Musl ืืกืื ืืจืืืช.
- ืืืืืืืช ืฉื ืืงืฉืจ LLD ืืืจืืื. ืชืืืื ืืฉืืคืจืช ืืคืืจืื ELF, ืืืื ืืืคืฉืจืืืืช ืื ืืกืคืืช "--dependency-file", "-error-handling-script", "-lto-pseudo-probe-for-profiling", "-no-lto-whole-program -ื ืจืืืช" " ืชืืืืช MinGW ืืฉืืคืจืช. ืขืืืจ ืคืืจืื Mach-O (macOS), ืืืืืขื ืชืืืื ืืืจืืืืงืืืจืืช arm64, arm ื-i386, ืืืคืืืืืืฆืืืช ืฉื ืืื ืงืืฉืืจ (LTO) ืืืชื ืชืงืืช ืืืกื ืืช ืืืืคืื ืืืจืืืื.
- Libc++ ืืืืฉืืช ืชืืื ืืช ืืืฉืืช ืฉื ืชืงื C++20 ืืืืื ืืคืืชืื ืชืืื ืืช ืฉื ืืคืจื C++2b. ื ืืกืคื ืชืืืื ืืื ืืื ืขื ืืฉืืชืช ืชืืืืช ืืืงืืืืฆืื ("-DLIBCXX_ENABLE_LOCALIZATION=OFF") ืืืชืงื ืื ืืืคืงืช ืืกืคืจืื ืคืกืืืื ืืงืจืืืื ("-DLIBCXX_ENABLE_RANDOM_DEVICE=OFF").
ืืงืืจ: OpenNet.ru