LLVM – платформа для разработки компиляторов и тулчейнов под лицензией Apache 2.0 с исключениями.
Некоторые изменения в clang:
-
Теперь по умолчанию компиляция не запускается в новом процессе как раньше.
-
Поддерживаются концепты C++20.
-
Арифметика указателей в C и C++ разрешается только в пределах массивов, в соответствии со стандартами. Добавлены соответствующие проверки в Undefined Behavior Sanitizer.
-
Улучшена поддержка OpenCL и OpemMP 5.0.
-
Поведение в ряде случаев приближено к поведению GCC.
Некоторые общие изменения в LLVM:
-
Новые intrinsics для генерации оптимизированных векторных инструкций.
-
Значительно расширены возможности межпроцедурной оптимизации в экспериментальном фреймворке Attractor.
-
Множество улучшений в поддержке различных архитектур (AArch64, ARM, MIPS, PowerPC, SystemZ, X86, WebAssembly, RISC-V).
А также различные улучшения в libclang, clangd, clang-format, clang-tidy, Static Analyzer, LLDB.
>>> Подробности