Stream: git-wasmtime

Topic: wasmtime / PR #1637 Enable optimizations for SIMD spec tests


view this post on Zulip Wasmtime GitHub notifications bot (Apr 30 2020 at 17:30):

abrown opened PR #1637 from load-extend-complex to master:

@peterhuene discovered in #1186 that the SIMD spec tests failed when enabling Cranelift's optimizations. After looking into this, the issue was in the optimize_complex_addresses, an optimization function that replaces an iadd + load* with a single load_complex instruction. Since the SIMD load-extend instructions did not have complex encodings, the function would panic. This PR adds the necessary Cranelift instructions and x86 encodings to avoid this failure and re-enable optimizations for the SIMD spec tests.

@julian-seward1, @bnjbvr, @jlb6740: hopefully the new backend can somehow avoid the duplication involved with the Cranelift IR: every load-extend instruction is repeated over the load size (e.g. 8, 16, ..., 8x8, 16x4, ...) and is duplicated for its complex version (e.g. load8x8 and load8x8_complex).

view this post on Zulip Wasmtime GitHub notifications bot (Apr 30 2020 at 17:35):

abrown updated PR #1637 from load-extend-complex to master:

@peterhuene discovered in #1186 that the SIMD spec tests failed when enabling Cranelift's optimizations. After looking into this, the issue was in the optimize_complex_addresses, an optimization function that replaces an iadd + load* with a single load_complex instruction. Since the SIMD load-extend instructions did not have complex encodings, the function would panic. This PR adds the necessary Cranelift instructions and x86 encodings to avoid this failure and re-enable optimizations for the SIMD spec tests.

@julian-seward1, @bnjbvr, @jlb6740: hopefully the new backend can somehow avoid the duplication involved with the Cranelift IR: every load-extend instruction is repeated over the load size (e.g. 8, 16, ..., 8x8, 16x4, ...) and is duplicated for its complex version (e.g. load8x8 and load8x8_complex).

view this post on Zulip Wasmtime GitHub notifications bot (Apr 30 2020 at 17:53):

abrown updated PR #1637 from load-extend-complex to master:

@peterhuene discovered in #1186 that the SIMD spec tests failed when enabling Cranelift's optimizations. After looking into this, the issue was in the optimize_complex_addresses, an optimization function that replaces an iadd + load* with a single load_complex instruction. Since the SIMD load-extend instructions did not have complex encodings, the function would panic. This PR adds the necessary Cranelift instructions and x86 encodings to avoid this failure and re-enable optimizations for the SIMD spec tests.

@julian-seward1, @bnjbvr, @jlb6740: hopefully the new backend can somehow avoid the duplication involved with the Cranelift IR: every load-extend instruction is repeated over the load size (e.g. 8, 16, ..., 8x8, 16x4, ...) and is duplicated for its complex version (e.g. load8x8 and load8x8_complex).

view this post on Zulip Wasmtime GitHub notifications bot (Apr 30 2020 at 18:01):

peterhuene submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 30 2020 at 18:08):

sunfishcode submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 30 2020 at 18:38):

abrown merged PR #1637.


Last updated: Dec 23 2024 at 12:05 UTC