Commit a6451b6
committed
Enable relaxed-simd-deterministic for Viceroy.
The Wasm spec defines several [relaxed SIMD instructions], which are
permitted to have nondeterministic results, in order to accommodate
differences between hardware CPU architectures. However, rather than
being fully nondeterministic, it requires them to be deterministic
within a run of a program, so that programs can assume that whatever
behavior they see the first time they use a relaxed SIMD instruction
will continue to be the behavior for the rest of the run of the
program.
Fastly's Compute platform makes use of snapshotting using [wizer] to
optimize program startup times. This involves running the program
initialization on one machine, snapshotting the program, and then
resuming the program on another. To ensure that the relaxed SIMD
instructions don't change behavior across the snapshot and resume,
enable the deterministic lowerings.
[relaxed SIMD instructions]: https://webassembly.github.io/spec/core/exec/numerics.html#relaxed-operations
[wizer]: https://github.com/bytecodealliance/wizer1 parent f2ea186 commit a6451b6
1 file changed
+9
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1025 | 1025 | | |
1026 | 1026 | | |
1027 | 1027 | | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
1028 | 1037 | | |
1029 | 1038 | | |
1030 | 1039 | | |
| |||
0 commit comments