33 lines
1.3 KiB
Markdown
33 lines
1.3 KiB
Markdown
# PR-O4.2 - Global Intrinsic Table and Reindexing
|
|
|
|
## Briefing
|
|
|
|
Consolidar IDs de intrínsecos em escopo global de build para impedir drift de IDs entre módulos e manter mapeamento canônico estável.
|
|
|
|
## Target
|
|
|
|
- `PBSFrontendPhaseService` e `IRBackendAggregator`.
|
|
- Modelo de saída `IRBackend` para carregar pool global de intrínsecos.
|
|
- `CALL_INTRINSIC` no FE/BE.
|
|
- Infra `source/tables` de intrínsecos já existente.
|
|
|
|
## Method
|
|
|
|
- Promover `IntrinsicTable` para escopo de agregação (não por arquivo).
|
|
- Agregador constrói `intrinsic_pool` global (`IntrinsicId -> IntrinsicReference`).
|
|
- Reindexar `CALL_INTRINSIC` de módulos compilados para o pool global antes do handoff ao backend.
|
|
- Tornar explícito no contrato que `intrinsicId` é relativo ao pool global de build.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- Mesmo intrínseco em módulos distintos referencia o mesmo `IntrinsicId` final.
|
|
- Não existe colisão/duplicação de id para referências canônicas iguais.
|
|
- Artifact produzido mantém IDs estáveis no mesmo input graph.
|
|
- Backend não precisa inferir/normalizar ids de intrínseco em runtime.
|
|
|
|
## Tests
|
|
|
|
- Caso multi-módulo com intrínseco repetido e intrínsecos distintos.
|
|
- Teste de reindex determinístico em ordem diferente de compilação.
|
|
- Regressão para caminho de emissão e Gate I com intrínsecos.
|