Skip to content

feat(opt): CSE local (intra-bloco)#150

Merged
guxvr merged 1 commit into
developerfrom
feat/issue135-cse
Jun 20, 2026
Merged

feat(opt): CSE local (intra-bloco)#150
guxvr merged 1 commit into
developerfrom
feat/issue135-cse

Conversation

@Bappoz

@Bappoz Bappoz commented Jun 20, 2026

Copy link
Copy Markdown
Owner

Resumo

Test plan

  • cargo test --all — inclui novos testes unitários cobrindo: eliminação de expressão repetida, não-eliminação quando operando é redefinido entre os usos, expressões distintas mantidas separadas no cache, e execução via PassManager/CsePass::run até ponto fixo.
  • cargo clippy --all -- -D warnings
  • cargo fmt --check

Closes #135

Substitui o stub de CsePass por uma eliminacao real de subexpressoes
comuns por bloco basico. Mantem um cache de expressoes (lhs, op, rhs)
ja calculadas; ao encontrar repeticao, remove a instrucao redundante e
reescreve usos futuros do seu destino para o destino ja calculado.
Qualquer redefinicao de variavel/temp invalida as entradas do cache
que a referenciam, seja como operando ou como destino cacheado.

Closes #135
@Bappoz Bappoz self-assigned this Jun 20, 2026
@guxvr guxvr self-requested a review June 20, 2026 15:28

@guxvr guxvr left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revisado e aprovado

@guxvr guxvr merged commit 5d4ba00 into developer Jun 20, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[OPT-02] Eliminação de subexpressões comuns (CSE — Common Subexpression Elimination)

2 participants