Design de IR de Compilador: Decisões Locais e Otimização

2025-06-17
Design de IR de Compilador: Decisões Locais e Otimização

Este artigo explora o design de representação intermediária (IR) de compiladores, focando em tomar decisões usando apenas informações locais. O autor compara grafos de fluxo de controle (CFGs), IRs baseados em registradores e a forma de Atribuição Única Estática (SSA), introduzindo designs mais avançados como Informação Única Estática (SSI) e Mar de Nós (SoN). SSA simplifica a análise atribuindo cada variável apenas uma vez, enquanto SSI permite adicionar informações mais granulares à mesma variável em diferentes ramos do programa. SoN representa todas as instruções como nós de grafo, representando explicitamente dependências de dados e controle para otimização mais flexível. Esses designs visam tornar os otimizadores de compiladores mais eficientes, gerando, em última análise, código mais otimizado.