1.2 KiB
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
IRBackendExecutableFunctionpara 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_slotspor 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/handlee joins de controle. - Testes de stack-depth máximo e mismatch em join.
- Regressão de spans e call classification.