Add an AIR pass for Algebraic expressions optimization
- Vorherrschende Sprache
- Rust
- Sterne
- 96
- Forks
- 39
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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.
Beitragsleitfaden
Rechercherichtung
Das Issue verweist auf bestehende Optimierungsdurchläufe und einen verlinkten PR-Kommentar für einen Ansatz. Beginnen Sie mit der Untersuchung der AIR-Pass-Infrastruktur im Codebase, wahrscheinlich in einem Verzeichnis wie `src/opt/` oder `src/passes/`. Überprüfen Sie die verlinkte Diskussion in PR #419 für Implementierungsdetails. Verstehen Sie die Darstellung algebraischer Ausdrücke und wie man Mustererkennung für Transformationen wie die Vereinfachung von `b - a - 1 + a` zu `b - 1` durchführt. Schreiben Sie Tests, um zu überprüfen, ob die Optimierung innerhalb des AIR-Constraint-Systems korrekt funktioniert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rust
- Bereich
- compilers
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100