LLVM β ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Apache 2.0 Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΡΠΊΠΎΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² clang:
Π‘Π΅Π³Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° Π½Π΅ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° Π² Π½ΠΎΠ² ΠΏΡΠΎΡΠ΅Ρ, ΠΊΠ°ΠΊΡΠΎ Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ.
-
ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ C++20.
ΠΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π² C ΠΈ C++ Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π° ΡΠ°ΠΌΠΎ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΌΠ°ΡΠΈΠ²ΠΈ, Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π² Undefined Behavior Sanitizer.
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° OpenCL ΠΈ OpenMP 5.0.
ΠΠΎΠ²Π΅Π΄Π΅Π½Π΅ΡΠΎ Π² ΡΠ΅Π΄ΠΈΡΠ° ΡΠ»ΡΡΠ°ΠΈ Π΅ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΎ Π΄ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° GCC.
ΠΡΠΊΠΎΠΈ ΠΎΠ±ΡΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² LLVM:
ΠΠΎΠ²ΠΈΡΠ΅ intrinsics Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
ΠΠ½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΌΠ΅ΠΆΠ΄ΡΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π² Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Attractor.
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ (AArch64, ARM, MIPS, PowerPC, SystemZ, X86, WebAssembly, RISC-V).
Π ΡΡΡΠΎ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² libclang, clangd, clang-format, clang-tidy, Static Analyzer, LLDB.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
