alexcrichton commented on issue #3107:
One thing I noticed reading your thoughts on #2943 is that as an engine we have to assume that all loads/stores in wasm are unaligned, even if the alignment specified on the memory operation is aligned. The alignment in the
memarg
is just a hint and the wasm itself doesn't have to uphold the alignment. I suspect, though, that all wasm loads/stores are flagged as unaligned, so this should still fix the issue? (can tests be added?)I presume that cranelift could still otherwise try to prove that an address is actually aligned, but I would be surprised if that were a cheap or already-implemented analysis...
abrown commented on issue #3107:
I'll probably leave this open until @cfallin takes a look: I think this type of change has to happen but maybe he can think of a better way.
alexcrichton commented on issue #3107:
Dealing with a signal and handling it I don't think should be too too hard on embedders, there's nothing really different than trap handling I think. That being said I suspect it would be significantly tricky, so I think we'd probably want some motivating data first to see if the optimization is worth it.
bjorn3 commented on issue #3107:
In case of for example cg_clif there is no embedder that can catch the
SIGBUS
. Now in case of cg_clif most loads/stores are guaranteed to be aligned, soAlignHint
is not very useful, but I can imagine that there will be other cases where it may be useful. I think at the very least cranelift-wasm should have an option to disableAlignHint
emission.
Last updated: Dec 23 2024 at 12:05 UTC