31 lines
1.1 KiB
Markdown
31 lines
1.1 KiB
Markdown
# PR-O3.1 - IRVM Control-Flow Lowering and Label Resolution
|
|
|
|
## Briefing
|
|
|
|
Expandir lowering para cobrir controle de fluxo com labels simbolicos internos e resolucao deterministica para offsets finais, alinhando o backend ao perfil quasi-ISA.
|
|
|
|
## Target
|
|
|
|
- `LowerToIRVMService` e modelo de instrucao IRVM.
|
|
- Resolucao de labels para `JMP/JMP_IF_*`.
|
|
- Validacoes de alvo de salto em fronteira de instrucao.
|
|
|
|
## Method
|
|
|
|
- Introduzir representacao intermediaria de labels no lowering.
|
|
- Resolver labels para `u32` relativo ao inicio da funcao antes da emissao.
|
|
- Integrar com `IRVMValidator` para garantir alvos validos e paths terminados.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- Fluxos com desvio condicional/incondicional sao emitidos corretamente.
|
|
- Todos os saltos resolvidos apontam para fronteiras validas.
|
|
- Caminhos alcancaveis sem terminador sao rejeitados deterministicamente.
|
|
- Mesmo input gera mesmos offsets finais.
|
|
|
|
## Tests
|
|
|
|
- Testes novos de lowering/validator com CFG linear e com joins.
|
|
- Casos negativos para alvo invalido e mismatch de altura de pilha em join.
|
|
- Regressao para funcoes sem saltos.
|