More precise livenes analysis for locals under Asyncify
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Inizia in src/passes/Asyncify.cpp, al TODO intorno alle righe 1597–1599, e analizza il Binaryen issue #3739 collegato e il pull request di Emscripten che lo ha motivato. Determina come la liveness dopo una chiamata sospensiva dovrebbe influire sul salvataggio di externref locals; il lavoro è completato quando i riferimenti morti vengono omessi e il comportamento supportato di Asyncify rimane corretto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I've been trying to add an externref to emscripten here:
https://github.com/emscripten-core/emscripten/pull/26964
And its failing with: Fatal: Asyncify does not yet support non-number types, like references (see https://github.com/WebAssembly/binaryen/issues/3739).
Rather than push to land the fix to #3739, I think my particulur use case might be fixed by resolving this TODO in Asyncify:
https://github.com/WebAssembly/binaryen/blob/3029fbb717390af5d49914ba635b5458dd1c6efa/src/passes/Asyncify.cpp#L1597-L1599
The externref I'm using is not live after the call to the suspending function, so it should not need to be saved or restored.
How hard would it be to fix that TODO? Presumably it would make Asyncify in general more efficient?
- Lingua principale
- WebAssembly
- Stelle
- 8.6k
- Fork
- 892
- Merge medio
- 1g 18h
- PR unite (30g)
- 79
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di WebAssembly/binaryen
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
WebAssembly/binaryen#9185 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
WebAssembly/binaryen#9135 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 76/100
WebAssembly/binaryen#9018 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
WebAssembly/binaryen#9186 ·
I maintainer di solito rispondono entro 1 giorno
-
LoopInvariantCodeMotion: `struct.new` is hoisted out of a loop, so all iterations share one objectAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
WebAssembly/binaryen#9184 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di WebAssembly/binaryen
Issue simili
-
self-host checker: E021 bound check reads an untyped literal at i32, not the type the call bindsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
JakeChampion/lang#11055 ·
I maintainer di solito rispondono entro 1 giorno
-
codegen: memref.collapse_shape in an mlir! block leaves an affine.apply that is never loweredApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
rhalbersma/xstd-bits#307 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno