LLVM 16.0 lançado com novo suporte para CPU Intel/AMD

Qt Creator 10 lançado com suporte a LLVM 16 e melhorias no CMake

O novo LLVM 16.0 acaba de ser lançado com novo suporte para CPU Intel/AMD. Existem pelo menos duas versões anuais deste compilador 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 se destaca 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 Discourse LLVM.

Acesse a versão completa
Sair da versão mobile