prometeu-studio/docs/pbs/pull-requests/PR-036-backend-irvm-core-model-and-validator.md
2026-03-24 13:42:24 +00:00

1.5 KiB

PR-036 - Backend IRVM Core Model and Validator

Briefing

Criar o modelo IRVM quase-ISA e validador estrutural compile-time, base para LowerToIRVM, OptimizeIRVM e EmitBytecode.

Target

  • Introduzir tipos de IRVM (modulo, funcao, instrucao, operandos, labels).
  • Suportar opcodes Core ISA e opcodes internos (IRVM_EXT) com metadados obrigatorios.
  • Implementar validacao estrutural minima de controle/pilha/calls.

Method

  • Criar API de instrucao com pops, pushes, is_branch, is_terminator.
  • Implementar verificador de fronteira compiler-side:
    • alvo de salto valido,
    • join de stack consistente,
    • underflow/overflow,
    • retorno coerente com return_slots,
    • validade de func_id.
  • Definir contrato de serializacao bloqueando IRVM_EXT na fronteira de emissao.

Acceptance Criteria

  1. IRVM suporta representacao de Core ISA e extensoes internas eliminaveis.
  2. Validador detecta inconsistencias estruturais requeridas pela spec 20.
  3. Falhas sao deterministicas e categorizadas como MARSHAL_VERIFY_PRECHECK_* quando aplicavel.
  4. Resultado do validador pode ser consumido por stages de optimize/emissao.

Tests

  1. Teste unitario para salto invalido e salto para meio de instrucao.
  2. Teste unitario para mismatch de stack em join.
  3. Teste unitario para retorno com shape invalido.
  4. Teste unitario para IRVM_EXT residual bloqueando emissao.

Affected Documents

  • docs/general/specs/20. IRBackend to IRVM Lowering Specification.md
  • docs/general/specs/19. Verification and Safety Checks Specification.md