Aula 23: Otimização de Código: Peephole e Local

Data de Publicação

25/03/2026

Data de Modificação

08/03/2026

Objetivos

  • Aplicar otimizações locais (dentro de blocos básicos).
  • Peephole Optimization.

Motivação

Em Engenharia de Computação, pequenas otimizações locais se acumulam para gerar ganhos significativos em:

  • Tempo de execução (menos instruções, melhor uso de registradores).
  • Consumo de energia (especialmente em loops críticos).
  • Tamanho de código (importante para firmwares embarcados).

Conteúdo

Otimizar é reescrever o programa (na IR ou no código gerado) para torná-lo mais rápido ou menor sem alterar o comportamento observável. Otimizações locais atuam dentro de um bloco básico (sequência sem desvios); peephole atua sobre uma janela pequena de instruções (ex.: assembly).

flowchart LR
  Bloco[Bloco básico] --> Const[Constant folding]
  Bloco --> Alg[Simplificação algébrica]
  Bloco --> CSE[CSE local]
  Const --> Saída[Código melhorado]
  Alg --> Saída
  CSE --> Saída

Otimizações Locais

Fáceis de implementar pois olham apenas um Bloco Básico (sequência sem desvios). 1. Constant Folding: Avaliar constantes em tempo de compilação. - x = 2 + 3 \(\to\) x = 5. 2. Algebraic Simplification: Usar identidades matemáticas. - x = y + 0 \(\to\) x = y. - x = y * 1 \(\to\) x = y. - x = y * 2 \(\to\) x = y << 1 (Shift é mais barato que Mul). 3. Local CSE (Common Subexpression Elimination): - a = b + c; ... d = b + c \(\to\) a = b + c; ... d = a.

Peephole Optimization (“Buraco de Fechadura”)

Olha para o código Assembly gerado através de uma janela móvel de 2 ou 3 instruções. - Eliminação de Redundância: asm MOV R1, R0 MOV R0, R1 ; Inútil, R0 já tem o valor - Redução de Fluxo: asm JMP L1 ... L1: JMP L2 ; Substitui o primeiro por JMP L2

Resumo

  • Locais: constant folding, simplificação algébrica, CSE dentro do bloco. Peephole: janela de 2–3 instruções no código gerado; eliminar redundâncias e saltos desnecessários.
  • Essas otimizações são baratas e aplicadas em praticamente todos os compiladores.

Referências

  • Aho et al. (2006); Cooper & Torczon (2011).

Materiais da aula

Última atualização: 08/03/2026

De volta ao topo