FERRAMENTAS LINUX: O LLVM 16.0 foi lançado com um novo suporte para a CPU Intel/AMD, mais recursos do C++20/C2X

domingo, 19 de março de 2023

O LLVM 16.0 foi lançado com um novo suporte para a CPU Intel/AMD, mais recursos do C++20/C2X

 

O LLVM 16 foi lançado na noite de sexta-feira como o último recurso semestral para esta pilha de compiladores de código aberto. Desde o suporte inicial ao AMD Zen 4 até a criação de novos conjuntos de instruções de CPU Intel e destinos de processador para seus novos processadores sendo introduzidos até 2024, há muitas adições de hardware interessantes no LLVM 16.0. O LLVM 16.0 também é notável pela vinculação LLD mais rápida, seções de depuração compactadas Zstd, estabilização de seu destino LoongArch, padrão para C++ 17 para Clang e muito mais. Aqui está uma olhada em todas as mudanças emocionantes do LLVM 16.


Os destaques do LLVM 16, juntamente com seus subprojetos como Clang 16 e LLD 16, incluem os seguintes itens que me interessam: - O

padrão C++ padrão do Clang agora é GNU++17 ( o dialeto GNU de C++17) em vez de GNU++14/C++14 como padrão anterior.

- Mais recursos C++20 foram implementados juntamente com correções de bugs para recursos C++20 existentes e também fazendo algumas preparações para recursos C++2b.

- Mais recursos C2X também foram implementados para Clang 16.0.

- Várias melhorias de diagnóstico do compilador Clang 16.

- O linker LLD do LLVM 16 tem velocidades de link muito mais rápidas para objetos ELF em comparação com o LLVM 15.

- O LLVM 16 LLD agora também suporta seções compactadas Zstd, semelhante ao suporte Zstd do GCC 13.

- O back-end da CPU LoongArch do LLVM foi promovido de "experimental" e agora está ativado por padrão. Há também suporte inicial LoongArch JITLink e outros recursos ativados. O depurador LLDB do LLVM também suporta a depuração de binários LoongArch de 64 bits, bem como o suporte ao compilador Clang, que está em boa forma agora para esta arquitetura de CPU chinesa.

- As novas extensões Intel x86 ISA são compatíveis com LLVM 16.0, incluindo AMX-FP16, CMPCCXADD, AVX-IFMA, AVX-VNNI-INT8 e AVX-NE-CONVERT.

- Novos alvos de CPU Intel suportados são Raptor Lake, Meteor Lake, Emerald Rapids, Sierra Forest, Granite Rapids e Grand Ridge.

- Suporte inicial para processadores AMD Zen 4 com -march=znver4, mas não contém o ajuste que ocorreu após a ramificação LLVM 16.

- O back-end RISC-V do LLVM adicionou suporte para muitas novas extensões como Zca, Zbe, Zbf, Zbm, Zbp, Zbr e Zbt.

- O LLVM adicionou suporte para os núcleos Arm Cortex-A715 / Cortex-X3 / Neoverse-V2.

- O back-end AArch64 do LLVM agora suporta Function Multi-Versioning (FMV) para permitir que caminhos de código personalizados sejam seguidos para desempenho otimizado com base nos recursos/CPU em tempo de execução.

- O suporte para arquiteturas Armv2A / Armv2A / Armv3 / Armv3M foi removido.

- A biblioteca padrão libc++ C++ do LLVM 16 adicionou suporte para mais recursos C++20 e C++23. Entre essas mudanças estão o operador de espaçonave C++20 que suporta mais tipos, a biblioteca de intervalos C++20 foi concluída e a biblioteca de formatos C++20 foi aprimorada.

O LLVM 16.0 está disponível para download no GitHub no formato de origem e em vários binários de lançamento. Há também um breve anúncio de lançamento no LLVM Discourse.







Nenhum comentário:

Postar um comentário