bytecodealliance / bytecodealliance/regalloc2
Make regalloc2 panic-clean: always return errors when impossible constraints occur
- Lingua principale
- Rust
- Stelle
- 265
- Fork
- 53
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
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.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia tracciando la gestione dei vincoli impossibili da parte dell’allocator, in particolare quando due operandi devono condividere un PReg, e individua i percorsi panic!() o assert!() coinvolti. Segui il percorso pubblico dell’allocator che restituisce gli errori, in modo che questi casi diventino errori restituiti; poi aggiungi la copertura per il vincolo PReg in conflitto e verifica che l’allocazione non vada più in panic.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100