LLVM 17.0 e Clang 17.0 lançados com muitos novos recursos

LLVM 17.0 + Clang 17.0 lançado com muitos novos recursos do compilador
LLVM 17.0 Clang 17.0

Acaba de sair a mais nova versão do compilador LLVM 17 estável junto ao LLVM 17.0.1. Isso representa uma pequena correção de um erro na versão 17.0.0-rc. Sendo assim, a tag v17.0.0 original acabou ignorada. Esta versão estável do LLVM 17.0.1, juntamente com subprojetos como o compilador Clang 17 C/C++, trazem muitos novos recursos e melhorias. Então, LLVM 17.0 e Clang 17.0 acabam de ser lançados com muitos novos recursos de compilação.

O LLVM é um projeto de código aberto que fornece uma infraestrutura de compilador modular e reutilizável. Ele é usado por muitas linguagens de programação, ferramentas de análise estática e dinâmica, e sistemas operacionais. O LLVM 17 é a versão mais recente do projeto, lançada em novembro de 2023. Neste post, vamos explorar algumas das novidades do LLVM 17 e como elas podem beneficiar os desenvolvedores. Inclusive, o Ubuntu 23.10 já terá suporte ao lançamento.

Há muitas mudanças novas a serem encontradas na pilha do compilador LLVM 17, incluindo algumas adições notáveis, como:

  • LLVM adiciona um pipeline FatLTO que permite gerar arquivos de objeto com código de máquina e bitcode compatível com LTO. O suporte LLVM para objetos Fat LTO permite o uso tanto para compilações de desenvolvimento quanto para binários otimizados.
  • Suporte de montagem para extensões de perfil AArch64 Arm 2022 A de Guarded Control Stacks, Check Feature Status e ATS1A.
  • O back-end AMDGPU LLVM tem sincronização mais refinada em torno de barreiras para GFX9 e mais recentes, suporte para Address Space 7 e 8 adicionado, vários novos intrínsecos são suportados e outros novos recursos.
  • LLVM no LoongArch adiciona suporte de montador/desmontador para as extensões LSX, LASX, LVZ e LBT LoongArch ISA.
  • Uma tonelada de melhorias de back-end RISC-V, incluindo suporte para muitas extensões ISA RISC-V mais recentes e outros novos recursos.
  • LLVM 17 em x86/x86_64 adiciona suporte para recursos Intel ISA mais recentes, como SHA-512, SM3, SM4 e AVX-VNNI-INT16 com Arrow Lake e Lunar Lake .
  • LLVM 17 adiciona o novo alvo Granite Rapids D (-mcpu=graniterapids-d).
  • O otimizador BOLT do LLVM adiciona suporte inicial ao alvo RISC-V.
    Logotipo da LLVM

No lado do Clang para este compilador C/C++, a atualização do Clang 17 fornece:

LLVM 17.0 e Clang 17.0 lançados com muitos novos recursos
  • Mais suporte a recursos do C++20 está em vigor, incluindo co-rotinas sendo totalmente suportadas agora em todos os destinos além do Windows.
  • Várias melhorias de suporte a recursos do C++23, incluindo agora honrar a opção -std=c++23.
  • Implementação de mais suporte a recursos C2x.
  • Geração de código de nível de otimização -O0 aprimorada.
  • Adicionando vários stdio integrados do GCC e fazendo outras melhorias de suporte à compatibilidade do GCC com novos sinalizadores.
  • Uma grande variedade de melhorias de diagnóstico do Clang.
  • Clang em x86/x86_64 agora suporta AMX-COMPLEX e outras novas extensões ISA, bem como -march=graniterapids-d para suporte a CPU Intel Granite Rapids.
  • No lado CUDA/HIP, gnu++17 é agora o padrão em vez de c++14.

LLVM 17.0 + Clang 17.0 lançado com muitos novos recursos do compilador

Há também outro trabalho a ser encontrado com o LLVM 17, como melhorias no vinculador LLD com muitos aprimoramentos ELF, libc++ suportando mais recursos C++20 e C++23, e o front-end Flang continua melhorando também para suporte LLVM Fortran. Downloads e mais detalhes sobre o lançamento do LLVM 17.0.1 de hoje em LLVM.org.

Fonte