Cranelift: inliner remaps dynamic types with the dynamic-stack-slot offset
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
Direzione di ricerca
Parti da cranelift/codegen/src/inline.rs a create_dynamic_types, dove l'offset è ricavato da func.dynamic_stack_slots.len() invece che da func.dfg.dynamic_types.len(); leggi come gli slot inlineati e i tipi dinamici vengono accoppiati per confermare l'indice corretto. Riproduci il caso .clif con clif-util test (cargo run -p clif-util). Concluso quando la riga ; check: corrisponde e Context::compile non va più in panic con Undeclared dynamic vector type; i filetests sotto cranelift/filetests coprono test inline.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
create_dynamic_types in cranelift/codegen/src/inline.rs computes its
offset from func.dynamic_stack_slots.len(), but it should use
func.dfg.dynamic_types.len(). Whenever the caller has a different number
of dynamic stack slots than dynamic types, inlined slots name the wrong
dynamic type. The verifier accepts the result, and then:
Context::compilepanics withUndeclared dynamic vector type, if the
index is out of range; or- the inlined slot silently gets one of the caller's unrelated types.
.clif Test Case
test inline
target aarch64
function %callee(i32) {
gv0 = dyn_scale_target_const.i32x4
dt0 = i32x4*gv0
dss0 = explicit_dynamic_slot dt0
block0(v0: i32):
v1 = splat.dt0 v0
v2 = dynamic_stack_addr.i64 dss0
store.dt0 notrap aligned v1, v2
return
}
function %caller() {
gv0 = dyn_scale_target_const.i64x2
dt0 = i64x2*gv0
dss0 = explicit_dynamic_slot dt0
dss1 = explicit_dynamic_slot dt0
fn0 = %callee(i32)
block0:
v0 = iconst.i32 1
call fn0(v0)
return
}
; check: dss2 = explicit_dynamic_slot dt1
Steps to Reproduce
clif-util test test.clif
Expected Results
The inlined slot uses the copied callee type:
dss2 = explicit_dynamic_slot dt1.
Actual Results
Missed #0: \bdss2 = explicit_dynamic_slot dt1\b
> dss2 = explicit_dynamic_slot dt2
The caller has no dt2. Compiling the inlined function panics with
Undeclared dynamic vector type: dt2.
Versions and Environment
Cranelift version or commit: 73b04cff33
Operating system: macOS 15.8.1
Architecture: aarch64
- Lingua principale
- Rust
- Stelle
- 18.7k
- Fork
- 1.9k
- Merge medio
- 21h 44m
- PR unite (30g)
- 300
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un 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 bytecodealliance/wasmtime
-
bug wasm-proposal:exceptions wasmtime:debugging
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
bytecodealliance/wasmtime#14102 ·
I maintainer di solito rispondono entro 1 giorno
-
wasm-proposal:gc
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
bytecodealliance/wasmtime#13808 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
cranelift cranelift:area:clif cranelift:goal:optimize-speed enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
bytecodealliance/wasmtime#1598 · 9 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 5/5 Più di una settimana Idoneità per principianti 8/100
bytecodealliance/wasmtime#14769 ·
I maintainer di solito rispondono entro 1 giorno
-
RUSTSEC-2026-0346: `Debug` impls for client session values expose TLS secretsForse già presa @pchickey l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 15/100
bytecodealliance/wasmtime#14763 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di bytecodealliance/wasmtime
Issue simili
-
area/infra good first issue type/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 60/100
cristim/AztecCraft#92 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
charles-hood/DiagramCraft#51 ·
-
S: Untriaged T: Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
libnyanpasu/clash-nyanpasu#5788 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
area:cli bug good first issue priority:medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
rtk-ai/rtk#4589 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno