prometeu-studio/docs/compiler/pbs/pull-requests/PR-07.1-optimize-irvm-span-source-hook-preservation.md
2026-03-24 13:42:37 +00:00

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

  1. Risco de regressao silenciosa em spans durante otimização.
  2. Evidencia insuficiente para fechar G21-7.5.
  3. 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:

  1. PR-06.2 (harness de equivalencia de otimizacao).
  2. PR-06.3 (passes reais de reescrita/remocao no optimizer).

Scope

  1. Testes dedicados para verificacao de span retention por pass:
    • UnreachableInstructionEliminationPass,
    • NormalizeRedundantJumpTargetsPass,
    • SimplifyJumpToNextPcPass.
  2. Assercoes de preservacao de BytecodeEmitter.Operation.span para operacoes sobreviventes.
  3. Assercoes de preservacao de spans em operacoes de salto apos remapeamento de target.
  4. Atualizacao da matriz para converter G21-7.5 de partial para pass.

Non-Goals

  1. Nao introduz novo formato de source map.
  2. Nao altera contrato de diagnostico fora do backend pipeline.

Method

O que deve ser feito explicitamente

  1. Criar fixture IRVM com spans distintos por instrucao/op.
  2. Executar optimize com passes reais e comparar mapeamento de spans esperado no output.
  3. Incluir caso com salto reescrito para validar span do salto apos remap.
  4. Incluir caso com eliminacao de instrucoes para validar que operacoes restantes mantem spans originais.
  5. Atualizar matriz (docs/general/specs/22...) com referencias aos novos testes.

Acceptance Criteria

  1. Existe suite de teste dedicada para preservacao de spans/source hooks no optimizer.
  2. Reescritas de salto preservam spans da operacao original.
  3. Eliminacao de instrucoes nao corrompe spans das operacoes remanescentes.
  4. G21-7.5 evolui para pass.

Tests

  1. Novos testes em backend/irvm (ex.: OptimizeIRVMSourceAttributionTest ou equivalente).
  2. Reexecucao obrigatoria:
    • :prometeu-compiler:prometeu-build-pipeline:test

Affected Documents

  1. docs/general/specs/21. IRVM Optimization Pipeline Specification.md
  2. docs/general/specs/22. Backend Spec-to-Test Conformance Matrix.md

Open Questions

Sem bloqueios arquiteturais.