bytecodealliance / bytecodealliance/regalloc2

Make regalloc2 panic-clean: always return errors when impossible constraints occur

Offen
#2 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.