bytecodealliance / bytecodealliance/regalloc2
Make regalloc2 panic-clean: always return errors when impossible constraints occur
- Vorherrschende Sprache
- Rust
- Sterne
- 265
- Forks
- 53
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Right now, the allocator can panic if the client provides impossible constraints, such as requiring two different operands to be placed in the same `PReg`.
While this represents a programming error in the client and *shouldn't* arise from an invalid input program, it is always better to bubble up errors; we should reserve `panic!()` and `assert!()` for conditions that can only be violated due to errors in regalloc2 itself.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne damit, die Behandlung unmöglicher Constraints durch den Allocator nachzuverfolgen, insbesondere wenn zwei Operanden denselben PReg verwenden müssen, und identifiziere die beteiligten panic!()- oder assert!()-Pfade. Verfolge den öffentlichen Pfad des Allocators zur Rückgabe von Fehlern, sodass diese Fälle als zurückgegebene Fehler behandelt werden, füge anschließend eine Abdeckung für die widersprüchliche PReg-Constraint hinzu und überprüfe, dass die Allokation nicht mehr in Panics endet.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rust
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100