Add an AIR pass for Algebraic expressions optimization
- Lingua principale
- Rust
- Stelle
- 96
- Fork
- 39
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
The current optimization passes (common subexpression elimination, constant propagation / folding, match arms combination..) do not yet reduce algebraic expressions effectively.
For instance, `b - a - 1 + a` would not be reduced into `b - 1`.
We should check what expressions we would like to optimize, and introduce a pass to do it.
One approach is described in https://github.com/0xMiden/air-script/pull/419#discussion_r2268817994
Note: See also https://github.com/0xMiden/air-script/issues/354 for more optimizations.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
L'issue fa riferimento a passaggi di ottimizzazione esistenti e a un commento di una PR collegata per un approccio. Inizia esaminando l'infrastruttura dei pass AIR nella codebase, probabilmente in una directory come `src/opt/` o `src/passes/`. Rivedi la discussione della PR #419 collegata per i dettagli di implementazione. Comprendi la rappresentazione delle espressioni algebriche e come eseguire il pattern matching per trasformazioni come semplificare `b - a - 1 + a` in `b - 1`. Scrivi test per verificare che l'ottimizzazione funzioni correttamente all'interno del sistema di vincoli AIR.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- compilers
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100