Stream: git-wasmtime

Topic: wasmtime / PR #1787 cranelift: add i64.{ishl,ushr,ashr} l...


view this post on Zulip Wasmtime GitHub notifications bot (May 29 2020 at 15:56):

whitequark opened PR #1787 from i64-shift-libcalls to master:

These libcalls are useful for 32-bit platforms.

On x86_32 in particular, commit 4ec16fa0 added support for legalizing 64-bit shifts through SIMD operations. However, that legalization requires SIMD to be enabled and SSE 4.1 to be supported, which is not acceptable as a hard requirement.

(Actually, when implementing that commit I didn't yet realize that these shifts ought to be legalized via libcalls rather than expansions most of the time, but the expansions are just fine.)

view this post on Zulip Wasmtime GitHub notifications bot (May 29 2020 at 15:56):

whitequark edited PR #1787 from i64-shift-libcalls to master:

These libcalls are useful for 32-bit platforms.

On x86_32 in particular, commit 4ec16fa0 added support for legalizing 64-bit shifts through SIMD operations. However, that legalization requires SIMD to be enabled and SSE 4.1 to be supported, which is not acceptable as a hard requirement.

(Actually, when implementing that commit I didn't yet realize that these shifts ought to be legalized via libcalls rather than expansions most of the time, but the expansions are just fine.)

With this commit it is finally possible to use cargo run --target i686-unknown-linux-gnu run foo.wasm without having to add --enable-simd.

view this post on Zulip Wasmtime GitHub notifications bot (May 29 2020 at 15:58):

whitequark updated PR #1787 from i64-shift-libcalls to master:

These libcalls are useful for 32-bit platforms.

On x86_32 in particular, commit 4ec16fa0 added support for legalizing 64-bit shifts through SIMD operations. However, that legalization requires SIMD to be enabled and SSE 4.1 to be supported, which is not acceptable as a hard requirement.

(Actually, when implementing that commit I didn't yet realize that these shifts ought to be legalized via libcalls rather than expansions most of the time, but the expansions are just fine.)

With this commit it is finally possible to use cargo run --target i686-unknown-linux-gnu run foo.wasm without having to add --enable-simd.

view this post on Zulip Wasmtime GitHub notifications bot (May 29 2020 at 15:59):

bjorn3 submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (May 29 2020 at 15:59):

bjorn3 created PR Review Comment:

pub(crate) use self::libcall::expand_as_libcall;

view this post on Zulip Wasmtime GitHub notifications bot (May 29 2020 at 16:00):

whitequark submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (May 29 2020 at 16:00):

whitequark created PR Review Comment:

Done

view this post on Zulip Wasmtime GitHub notifications bot (May 29 2020 at 16:00):

whitequark updated PR #1787 from i64-shift-libcalls to master:

These libcalls are useful for 32-bit platforms.

On x86_32 in particular, commit 4ec16fa0 added support for legalizing 64-bit shifts through SIMD operations. However, that legalization requires SIMD to be enabled and SSE 4.1 to be supported, which is not acceptable as a hard requirement.

(Actually, when implementing that commit I didn't yet realize that these shifts ought to be legalized via libcalls rather than expansions most of the time, but the expansions are just fine.)

With this commit it is finally possible to use cargo run --target i686-unknown-linux-gnu run foo.wasm without having to add --enable-simd.

view this post on Zulip Wasmtime GitHub notifications bot (May 29 2020 at 21:57):

abrown submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (May 29 2020 at 21:57):

abrown created PR Review Comment:

Just a drive-by comment: I'm not too sure this will work. To get the ISA flags I had to add some extra machinery (see https://github.com/bytecodealliance/wasmtime/pull/1759/commits/849d71bdb7bbcc3c6f6975dfb2224e75185dab06)

view this post on Zulip Wasmtime GitHub notifications bot (May 29 2020 at 21:58):

abrown submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (May 29 2020 at 21:58):

abrown created PR Review Comment:

And it's use: https://github.com/bytecodealliance/wasmtime/pull/1759/commits/6ab817eae953cfb4fd76b62d94bf89408e289b94#diff-f5aa2e18f8d875720c00f30b86cb69d4R1523

view this post on Zulip Wasmtime GitHub notifications bot (May 30 2020 at 05:34):

whitequark submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (May 30 2020 at 05:34):

whitequark created PR Review Comment:

Yeah, you're right, it doesn't work. Which PR is that machinery added in?

view this post on Zulip Wasmtime GitHub notifications bot (Jun 02 2020 at 00:15):

abrown submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Jun 02 2020 at 00:15):

abrown created PR Review Comment:

#1759, which should be ready to go; @bnjbvr, here's another user for the ISA-specific flag machinery I added.

view this post on Zulip Wasmtime GitHub notifications bot (Jun 02 2020 at 00:15):

abrown edited PR Review Comment.

view this post on Zulip Wasmtime GitHub notifications bot (Jun 02 2020 at 00:16):

abrown edited PR Review Comment.

view this post on Zulip Wasmtime GitHub notifications bot (Jun 02 2020 at 00:16):

abrown submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Jun 02 2020 at 00:16):

abrown created PR Review Comment:

(Oh, sorry, @whitequark, I see you already figured that out below!)

view this post on Zulip Wasmtime GitHub notifications bot (Jun 04 2020 at 00:29):

whitequark updated PR #1787 from i64-shift-libcalls to master:

These libcalls are useful for 32-bit platforms.

On x86_32 in particular, commit 4ec16fa0 added support for legalizing 64-bit shifts through SIMD operations. However, that legalization requires SIMD to be enabled and SSE 4.1 to be supported, which is not acceptable as a hard requirement.

(Actually, when implementing that commit I didn't yet realize that these shifts ought to be legalized via libcalls rather than expansions most of the time, but the expansions are just fine.)

With this commit it is finally possible to use cargo run --target i686-unknown-linux-gnu run foo.wasm without having to add --enable-simd.

view this post on Zulip Wasmtime GitHub notifications bot (Jun 04 2020 at 01:38):

whitequark updated PR #1787 from i64-shift-libcalls to master:

These libcalls are useful for 32-bit platforms.

On x86_32 in particular, commit 4ec16fa0 added support for legalizing 64-bit shifts through SIMD operations. However, that legalization requires SIMD to be enabled and SSE 4.1 to be supported, which is not acceptable as a hard requirement.

(Actually, when implementing that commit I didn't yet realize that these shifts ought to be legalized via libcalls rather than expansions most of the time, but the expansions are just fine.)

With this commit it is finally possible to use cargo run --target i686-unknown-linux-gnu run foo.wasm without having to add --enable-simd.

view this post on Zulip Wasmtime GitHub notifications bot (Jun 04 2020 at 21:57):

whitequark updated PR #1787 from i64-shift-libcalls to master:

These libcalls are useful for 32-bit platforms.

On x86_32 in particular, commit 4ec16fa0 added support for legalizing 64-bit shifts through SIMD operations. However, that legalization requires SIMD to be enabled and SSE 4.1 to be supported, which is not acceptable as a hard requirement.

(Actually, when implementing that commit I didn't yet realize that these shifts ought to be legalized via libcalls rather than expansions most of the time, but the expansions are just fine.)

With this commit it is finally possible to use cargo run --target i686-unknown-linux-gnu run foo.wasm without having to add --enable-simd.

view this post on Zulip Wasmtime GitHub notifications bot (Jun 05 2020 at 19:13):

abrown submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Jun 05 2020 at 19:13):

abrown merged PR #1787.


Last updated: Oct 23 2024 at 20:03 UTC