LLVM IR recebe tipo byte: Suporte nativo para operações de memória bruta

2025-09-09

Um projeto do Google Summer of Code 2025 na Infraestrutura do Compilador LLVM adicionou com sucesso um novo tipo byte ao LLVM IR, representando valores de memória bruta. Isso permite a implementação nativa de intrínsecos de memória como memcpy, memmove e memcmp, corrige transformações inseguras e desbloqueia novas otimizações, tudo com mínimo impacto no desempenho. O projeto abordou a falta de um tipo para representar memória bruta no LLVM, melhorando a correção e otimização do compilador por meio do rastreamento da proveniência do ponteiro e da representação precisa de bits de veneno. O tratamento do Clang dos tipos de acesso à memória bruta em C/C++ também foi aprimorado, juntamente com correções para várias otimizações inseguras.

Leia mais
Desenvolvimento

LLVM Fortran Compiler Flang: Uma década em desenvolvimento, oficialmente lançado

2025-03-12

Após quase uma década de desenvolvimento, o compilador LLVM Fortran, Flang, finalmente foi oficialmente renomeado de "flang-new" para "flang". Este artigo relata a jornada do Flang, desde seu desenvolvimento inicial pelos Laboratórios Nacionais dos EUA e NVIDIA, até a adoção da Representação Intermediária Multinível (MLIR) do LLVM e sua eventual integração ao projeto LLVM. A criação do Flang teve como objetivo fornecer um compilador Fortran de longo prazo e não proprietário, mitigando os riscos associados a falhas em um único ponto e promovendo o crescimento da comunidade Fortran. A jornada do Flang também mostra avanços na tecnologia de compiladores, como o uso de MLIR para otimizar o código Fortran. Agora maduro e estável, com o apoio de fornecedores como a AMD, o Flang se destaca como uma ferramenta poderosa para desenvolvedores Fortran.

Leia mais
Desenvolvimento

Lightstorm: Compilador Ruby Minimalista Aumenta o Desempenho com MLIR

2024-12-31

A equipe DragonRuby desenvolveu o Lightstorm, um compilador Ruby minimalista com o objetivo de melhorar o desempenho de seu motor de jogo multiplataforma. Usando o MLIR, o Lightstorm traduz o bytecode da máquina virtual mruby para código C, otimizando o desempenho ao eliminar operações de carga/armazenamento e ramificações no loop do interpretador da VM. Os resultados de referência mostram melhorias de desempenho variando de 1% a 1200%, com uma redução média de cerca de 30% no tempo de execução e ciclos. Embora atualmente suporte apenas um subconjunto do Ruby, o projeto valida a viabilidade da pré-compilação de código Ruby para ganhos de desempenho. Os planos futuros incluem a substituição de componentes C críticos do motor por código Ruby compilado.

Leia mais