Asyncify produces invalid IR for inner passes

Aperta
#8,753 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
52/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
cpp, wasm
Ambito
compilers

Direzione di ricerca

Inizia in src/passes/Asyncify.cpp, nel codice di generazione delle chiamate indicato intorno alle righe 1256 e 1864-1880, quindi esamina come i pass interni risolvono le funzioni. Riproduci il crash di SimplifyLocals che coinvolge __asyncify_get_call_index. Il lavoro è completato quando Asyncify rappresenta queste funzioni generate come import, così che i suoi pass interni non elaborino più IR non valido.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

In https://github.com/WebAssembly/binaryen/pull/8738#discussion_r3282670237, we found that Asyncify creates calls to functions that don't exist, and then runs some inner passes. With the code from #8738, SimplifyLocals crashes when trying to lookup a function that doesn't exist (__asyncify_get_call_index in this case). We should add these functions as imports so that passes don't need to handle invalid IR.

Lingua principale
WebAssembly
Stelle
8.6k
Fork
885
Merge medio
2g 1h
PR unite (30g)
70

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di WebAssembly/binaryen

Tutte le issue di WebAssembly/binaryen

Issue simili

Altre issue su Compilers

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.