2.6 KiB
2.6 KiB
PR-07.1 - OptimizeIRVM Span and Source-Hook Preservation
Briefing
A matriz de conformidade ainda marca G21-7.5 como partial.
Hoje existe evidencia de spans no lowering, mas falta regressao dedicada provando que passes de OptimizeIRVM preservam hooks de atribuicao de origem (spans/source hooks) apos reescritas de instrucoes e remapeamento de saltos.
Motivation
Dor atual que esta PR resolve
- Risco de regressao silenciosa em spans durante otimização.
- Evidencia insuficiente para fechar
G21-7.5. - Diagnosticos pos-otimizacao podem perder rastreabilidade sem prova dedicada.
Target
Fechar G21-7.5 com suite de regressao explicita para preservacao de source hooks/spans no caminho LowerToIRVM -> OptimizeIRVM -> EmitBytecode.
Dependencies
Prerequisitos diretos:
PR-06.2(harness de equivalencia de otimizacao).PR-06.3(passes reais de reescrita/remocao no optimizer).
Scope
- Testes dedicados para verificacao de span retention por pass:
UnreachableInstructionEliminationPass,NormalizeRedundantJumpTargetsPass,SimplifyJumpToNextPcPass.
- Assercoes de preservacao de
BytecodeEmitter.Operation.spanpara operacoes sobreviventes. - Assercoes de preservacao de spans em operacoes de salto apos remapeamento de target.
- Atualizacao da matriz para converter
G21-7.5departialparapass.
Non-Goals
- Nao introduz novo formato de source map.
- Nao altera contrato de diagnostico fora do backend pipeline.
Method
O que deve ser feito explicitamente
- Criar fixture IRVM com spans distintos por instrucao/op.
- Executar optimize com passes reais e comparar mapeamento de spans esperado no output.
- Incluir caso com salto reescrito para validar span do salto apos remap.
- Incluir caso com eliminacao de instrucoes para validar que operacoes restantes mantem spans originais.
- Atualizar matriz (
docs/general/specs/22...) com referencias aos novos testes.
Acceptance Criteria
- Existe suite de teste dedicada para preservacao de spans/source hooks no optimizer.
- Reescritas de salto preservam spans da operacao original.
- Eliminacao de instrucoes nao corrompe spans das operacoes remanescentes.
G21-7.5evolui parapass.
Tests
- Novos testes em
backend/irvm(ex.:OptimizeIRVMSourceAttributionTestou equivalente). - Reexecucao obrigatoria:
:prometeu-compiler:prometeu-build-pipeline:test
Affected Documents
docs/general/specs/21. IRVM Optimization Pipeline Specification.mddocs/general/specs/22. Backend Spec-to-Test Conformance Matrix.md
Open Questions
Sem bloqueios arquiteturais.