Π‘Π»Π΅Π΄ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
ΠΠ»ΡΡΠΎΠ²Π°ΡΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π±Π΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π°
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π΄ΡΡΠ²ΠΎΡΠΎ Π½Π° Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ (
AST ) Π·Π° Π½Π΅ΡΠ°Π±ΠΎΡΠ΅Ρ C++ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠΎΠΌΠΎΡ ΠΏΡΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° Π²ΡΠ½ΡΠ½ΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΊΠ°ΡΠΎ clang-tidy ΠΈ clangd. Π€ΡΠ½ΠΊΡΠΈΡΡΠ° Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° C++ ΠΊΠΎΠ΄ ΠΈ ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° ΡΡΠ΅Π· ΠΎΠΏΡΠΈΠΈΡΠ΅ β-Xclang -f[no-]recovery-astβ. - ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ½ΠΈ ΡΠ΅ΠΆΠΈΠΌΠΈ:
- β-Wpointer-to-int-castβ Π΅ Π³ΡΡΠΏΠ° ΠΎΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π·Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΊΡΠΌ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½ ΡΠΈΠΏ int, ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΠΏΠΎΠ±ΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ.
- β-Wuninitialized-const-referenceβ - ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ Ρ Π°ΡΡΠΈΠ±ΡΡΠ° βconstβ.
- "-Wimplicit-const-int-float-conversion" - ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° ΠΈΠΌΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π°Π»Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Π² ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½ ΡΠΈΠΏ.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ARM ΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ C ΡΡΠ½ΠΊΡΠΈΠΈ, Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ Π² ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° (
ΠΡΡΡΠ΅ΡΠ½ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ), Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ ΠΎΡ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Arm v8.1-M MVE ΠΈ CDE. ΠΠ°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ Π² Π·Π°Π³Π»Π°Π²Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ arm_mve.h ΠΈ arm_cde.h. -
ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΠ΅Π»ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ _ExtInt(N), ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΠΊΡΠ°ΡΠ½ΠΈ Π½Π° ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π½Π° Π΄Π²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½ΠΈ Π½Π° FPGA/HLS.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ , _ExtInt(7) Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½ ΡΠΈΠΏ, ΡΡΡΡΠΎΡΡ ΡΠ΅ ΠΎΡ 7 Π±ΠΈΡΠ°. - ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ C ΡΡΠ½ΠΊΡΠΈΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ARM SVE (Scalable Vector Extension) ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ:
__ARM_FEATURE_SVE, __ARM_FEATURE_SVE_BF16,
__ARM_FEATURE_SVE_MATMUL_FP32, __ARM_FEATURE_SVE_MATMUL_FP64,
__ARM_FEATURE_SVE_MATMUL_INT8,
__ARM_FEATURE_SVE2, __ARM_FEATURE_SVE2_AES,
__ARM_FEATURE_SVE2_BITPERM,
__ARM_FEATURE_SVE2_SHA3,
__ARM_FEATURE_SVE2_SM4. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ°ΠΊΡΠΎΡΡΡ __ARM_FEATURE_SVE ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° AArch64 ΠΊΠΎΠ΄ ΡΡΠ΅Π· Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ "-march=armv8-a+sve". - Π€Π»Π°Π³ΡΡ "-O" Π²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ° Ρ ΡΠ΅ΠΆΠΈΠΌΠ° Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ "-O1" Π²ΠΌΠ΅ΡΡΠΎ Ρ "-O2".
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΡΠ»Π°Π³ΠΎΠ²Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ°:
- "-fstack-clash-protection" - ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ
ΠΏΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΡΠΎΡΠΊΠΈ Π½Π° ΡΡΠ΅ΠΊΠ° ΠΈ ΠΊΡΠΏΡΠΈΠ½Π°ΡΠ° . - "-ffp-exception-behavior={ignore,maytrap,strict}" - ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΠΈ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π° ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ.
- "-ffp-model={precise,strict,fast}" - ΠΠΏΡΠΎΡΡΡΠ²Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΠ΅ΡΠΈΡ ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ.
- "-fpch-codegen" ΠΈ "-fpch-debuginfo" Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ Ρ Π΅Π΄ΡΡ (PCH) Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΎΠ±Π΅ΠΊΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΠΊΠΎΠ΄ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ.
- β-fsanitize-coverage-allowlistβ ΠΈ β-fsanitize-coverage-blocklistβ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π±Π΅Π»ΠΈ ΠΈ ΡΠ΅ΡΠ½ΠΈ ΡΠΏΠΈΡΡΡΠΈ Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠΊΡΠΈΡΠΈΠ΅.
- β-mtlsize={12,24,32,48}β, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° TLS (Π»ΠΎΠΊΠ°Π»Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° Π½ΠΈΡΠΊΠΈ).
- "-menable-experimental-extension" Π·Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ RISC-V ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ.
- "-fstack-clash-protection" - ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ
- Π Π΅ΠΆΠΈΠΌΡΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° C Π΅ "-fno-common", ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ.
- ΠΠ΅ΡΡΡ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ ΠΎΡ /tmp Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° ~/.cache. ΠΠ° Π΄Π° ΠΎΡΠΌΠ΅Π½ΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ»Π°Π³Π° β-fmodules-cache-path=β.
- Π‘ΡΠ°Π½Π΄Π°ΡΡΡΡ Π·Π° Π΅Π·ΠΈΠΊ C ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΎΡ gnu11 Π½Π° gnu17.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° GNU C ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ "
asm inline Β» Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π°ΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΈ Π²Π»ΠΎΠΆΠΊΠΈ. Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°, Π½ΠΎ Π½Π΅ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΏΠΎ Π½ΠΈΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½. - ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° OpenCL ΠΈ CUDA, ΡΠ° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ OpenCL 2.0 ΠΈ ΡΠ° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈ Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° OpenMP 5.0.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ IndentExternBlock ΠΊΡΠΌ ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° clang-format Π·Π° ΠΏΠΎΠ΄ΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° extern "C" ΠΈ extern "C++" Π±Π»ΠΎΠΊΠΎΠ²Π΅.
- Π‘ΡΠ°ΡΠΈΡΠ½ΠΈΡΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈΠΌΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π½Π°ΡΠ»Π΅Π΄Π΅Π½ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΈ Π² C++. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ alpha.core.C11Lock ΠΈ alpha.fuchsia.Lock Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ, alpha.security.cert.pos.34c Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ°ΡΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° putenv, webkit.NoUncountedMemberChecker ΠΈ webkit.RefCntblBaseVirtualDtor Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π½Π΅ΠΈΠ·Π±ΡΠΎΠΈΠΌΠΈ ΡΠΈΠΏΠΎΠ²Π΅, alpha .cplusplus .SmartPtr Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π° Π΄Π΅ΡΠ΅ΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΡΠ»Π΅Π² ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ ΡΠΊΠ°Π·Π°ΡΠ΅Π».
- Π Π»ΠΈΠ½ΡΠ΅Ρ Π΄ΡΡΠ½-ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½
Π΄ΠΎΠ±Π°Π²ΠΈ Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°ΡΡ ΠΎΡ Π½ΠΎΠ²ΠΈ ΡΠ΅ΠΊΠΎΠ²Π΅. - Π‘ΡΡΠ²ΡΡΡΡ Π·Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° clangd (Clang Server) Π΅ Ρ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½ΠΎΠ²ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ°
- Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π΅ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΊΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Python 3. ΠΠΊΠΎ Python 3 Π½Π΅ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΡΠ΅ ΠΊΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Python 2.
- ΠΡΠ΅Π΄Π½ΠΈΡΡ ΠΊΡΠ°ΠΉ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° Π·Π° Π΅Π·ΠΈΠΊΠ° Go (llgo) Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ ΠΎΡ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΎ Π² Π±ΡΠ΄Π΅ΡΠ΅.
- ΠΡΡΠΈΠ±ΡΡΡΡ vector-function-abi-variant Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ (IR), Π·Π° Π΄Π° ΠΎΠΏΠΈΡΠ΅ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΊΠ°Π»Π°ΡΠ½ΠΈ ΠΈ Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° Π²Π΅ΠΊΡΠΎΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ. ΠΡ llvm::VectorType ΠΈΠΌΠ° Π΄Π²Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΡΠΈΠΏΠ° llvm::FixedVectorType ΠΈ llvm::ScalableVectorType.
- Π Π°Π·ΠΊΠ»ΠΎΠ½ΡΠ²Π°Π½Π΅ΡΠΎ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° udef ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° undef ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΊΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΠΎΠ·Π½Π°Π²Π° ΠΊΠ°ΡΠΎ Π½Π΅Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. IN
memset/memcpy/memmove ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° undef ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, Π½ΠΎ Π°ΠΊΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π΅ Π½ΡΠ»Π°. - LLJIT Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ LLJIT::initialize ΠΈ LLJIT::deinitialize. ΠΠ½Π΅Π΄ΡΠ΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΡΠΌ JITDylib Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠ»Π°ΡΠ° StaticLibraryDefinitionGenerator. ΠΠΎΠ±Π°Π²Π΅Π½ C API Π·Π°
ORCv2 (API Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈ). - ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ Cortex-A64, Cortex-A34, Cortex-A77 ΠΈ Cortex-X78 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΊΡΠΌ Π±Π΅ΠΊΠ΅Π½Π΄Π° Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° AArch1. ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈ ARMv8.2-BF16 (BFloat16) ΠΈ ARMv8.6-A ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ RMv8.6-ECV (ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π±ΡΠΎΡΡΠ°), ARMv8.6-FGT (Fine Grained Traps), ARMv8.6-AMU (Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ) ΠΈ ARMv8.0-DGH (ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ). ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π·Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ-ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡ ΠΊΡΠΌ SVE Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ Cortex-M55, Cortex-A77, Cortex-A78 ΠΈ Cortex-X1 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΊΡΠΌ Π±Π΅ΠΊΠ΅Π½Π΄Π° Π·Π° ARM Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ°. ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ
Armv8.6-A Matrix Multiply ΠΈ RMv8.2-AA32BF16 BFloat16. - ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ POWER10 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΊΡΠΌ Π±Π΅ΠΊΠ΅Π½Π΄Π° Π·Π° PowerPC Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ°. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° ΡΠΈΠΊΡΠ»Π° ΡΠ° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π°.
- ΠΠ΅ΠΊΠ΅Π½Π΄ΡΡ Π·Π° RISC-V Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ Π½Π°Π±ΠΎΡΠΈ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ.
- ΠΠ΅ΠΊΠ΅Π½Π΄ΡΡ Π·Π° AVR Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Π΅Π½ ΠΎΡ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π°ΡΠ° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ Π² ΡΡΠ°Π±ΠΈΠ»Π½Π°, Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ.
- ΠΠ΅ΠΊΠ΅Π½Π΄ΡΡ Π·Π° x86 Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Intel AMX ΠΈ TSXLDTRK ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ Π°ΡΠ°ΠΊΠΈ
ΠΠΠ (ΠΠ½ΠΆΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅), Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠΈΠ»Π°Π³Π° ΠΎΠ±Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΏΠΎΡΠΈΡΠΊΠ°Π½Π΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈΡ Π΅ΡΠ΅ΠΊΡ Π½Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° Π°ΡΠ°ΠΊΠΈ, ΠΏΡΠΈΡΠΈΠ½Π΅Π½ΠΈ ΠΎΡ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. - Π Π±Π΅ΠΊΠ΅Π½Π΄Π° Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° SystemZ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° MemorySanitizer ΠΈ LeakSanitizer.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π·Π°Π³Π»Π°Π²Π΅Π½ ΡΠ°ΠΉΠ» Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ ΠΊΡΠΌ Libc++
. -
Π Π°Π·ΡΠΈΡΠ΅Π½ΠΎ ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° LLD Π»ΠΈΠ½ΠΊΠ΅Ρ. ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ELF ΡΠΎΡΠΌΠ°Ρ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΈ "--lto-emit-asm", "--lto-whole-program-visibility", "-print-archive-stats", "-shuffle-sections", " -thinlto- Π΅Π΄ΠΈΠ½ΠΈΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»", "-unique", "-rosegment", "-threads=N". ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ β--time-traceβ Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ΡΠΎ Π²ΡΠ² ΡΠ°ΠΉΠ», ΠΊΠΎΠΉΡΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° chrome://tracing Π² Chrome.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru