prometeu-studio/docs/pbs/pull-requests/PR-O4.3-semantic-lowering-cfg-and-stack-analysis.md
2026-03-24 13:42:27 +00:00

1.2 KiB

PR-O4.3 - Semantic Lowering, CFG, and Stack Analysis

Briefing

Trocar lowering executável baseado em coleta de callsites por lowering semântico real com construção de CFG e cálculo formal de max_stack_slots.

Target

  • PbsFrontendCompiler (lowering executável).
  • Modelo IRBackendExecutableFunction para instruções semânticas.
  • Regras de stack/slot no handoff FE -> BE.

Method

  • Introduzir lowering de statements/expressões para instruções executáveis (não apenas calls + RET).
  • Construir CFG por função e resolver blocos/jumps explicitamente.
  • Calcular max_stack_slots por análise de fluxo em vez de heurística fixa.
  • Preservar spans por instrução para debug e diagnóstico.

Acceptance Criteria

  • Programas com controle de fluxo e expressões produzem IR executável semântico.
  • max_stack_slots é derivado por análise, não constante heurística.
  • Paths não terminados e inconsistências de stack são detectados no FE/BE boundary.
  • Contrato de lowering mantém determinismo para o mesmo AST admitido.

Tests

  • Fixtures com if/while/for/switch/handle e joins de controle.
  • Testes de stack-depth máximo e mismatch em join.
  • Regressão de spans e call classification.