Stream: git-wasmtime

Topic: wasmtime / PR #2278 Introduce the Cranelift IR instructio...


view this post on Zulip Wasmtime GitHub notifications bot (Oct 07 2020 at 19:26):

akirilov-arm opened PR #2278 from load_splat to main:

It corresponds to WebAssembly's load*_splat operations, which were previously represented as a combination of Load and Splat instructions. However, there are architectures such as Armv8-A that have a single machine instruction equivalent to the Wasm operations. In order to generate it, it is necessary to merge the Load and the Splat in the backend, which is not possible because the load may have side effects. The new IR instruction works around this limitation.

The AArch64 backend leverages the new instruction to improve code generation. I am not really qualified to implement the optimization for x86, so I have added a temporary work-around to avoid any test breakage. It's a bit of a hack, but it should be incorrect only when cross-compiling to x86 on an Arm platform.

Fixes #1175 (but other backends need work too).

cc @abrown @cfallin

view this post on Zulip Wasmtime GitHub notifications bot (Oct 07 2020 at 19:36):

abrown submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 07 2020 at 19:48):

cfallin submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 09 2020 at 12:50):

akirilov-arm updated PR #2278 from load_splat to main:

It corresponds to WebAssembly's load*_splat operations, which were previously represented as a combination of Load and Splat instructions. However, there are architectures such as Armv8-A that have a single machine instruction equivalent to the Wasm operations. In order to generate it, it is necessary to merge the Load and the Splat in the backend, which is not possible because the load may have side effects. The new IR instruction works around this limitation.

The AArch64 backend leverages the new instruction to improve code generation. I am not really qualified to implement the optimization for x86, so I have added a temporary work-around to avoid any test breakage. It's a bit of a hack, but it should be incorrect only when cross-compiling to x86 on an Arm platform.

Fixes #1175 (but other backends need work too).

cc @abrown @cfallin

view this post on Zulip Wasmtime GitHub notifications bot (Oct 13 2020 at 17:10):

abrown updated PR #2278 from load_splat to main:

It corresponds to WebAssembly's load*_splat operations, which were previously represented as a combination of Load and Splat instructions. However, there are architectures such as Armv8-A that have a single machine instruction equivalent to the Wasm operations. In order to generate it, it is necessary to merge the Load and the Splat in the backend, which is not possible because the load may have side effects. The new IR instruction works around this limitation.

The AArch64 backend leverages the new instruction to improve code generation. I am not really qualified to implement the optimization for x86, so I have added a temporary work-around to avoid any test breakage. It's a bit of a hack, but it should be incorrect only when cross-compiling to x86 on an Arm platform.

Fixes #1175 (but other backends need work too).

cc @abrown @cfallin

view this post on Zulip Wasmtime GitHub notifications bot (Oct 13 2020 at 17:58):

akirilov-arm updated PR #2278 from load_splat to main:

It corresponds to WebAssembly's load*_splat operations, which were previously represented as a combination of Load and Splat instructions. However, there are architectures such as Armv8-A that have a single machine instruction equivalent to the Wasm operations. In order to generate it, it is necessary to merge the Load and the Splat in the backend, which is not possible because the load may have side effects. The new IR instruction works around this limitation.

The AArch64 backend leverages the new instruction to improve code generation. I am not really qualified to implement the optimization for x86, so I have added a temporary work-around to avoid any test breakage. It's a bit of a hack, but it should be incorrect only when cross-compiling to x86 on an Arm platform.

Fixes #1175 (but other backends need work too).

cc @abrown @cfallin

view this post on Zulip Wasmtime GitHub notifications bot (Oct 14 2020 at 12:09):

akirilov-arm updated PR #2278 from load_splat to main:

It corresponds to WebAssembly's load*_splat operations, which were previously represented as a combination of Load and Splat instructions. However, there are architectures such as Armv8-A that have a single machine instruction equivalent to the Wasm operations. In order to generate it, it is necessary to merge the Load and the Splat in the backend, which is not possible because the load may have side effects. The new IR instruction works around this limitation.

The AArch64 backend leverages the new instruction to improve code generation. I am not really qualified to implement the optimization for x86, so I have added a temporary work-around to avoid any test breakage. It's a bit of a hack, but it should be incorrect only when cross-compiling to x86 on an Arm platform.

Fixes #1175 (but other backends need work too).

cc @abrown @cfallin

view this post on Zulip Wasmtime GitHub notifications bot (Oct 14 2020 at 16:43):

abrown updated PR #2278 from load_splat to main:

It corresponds to WebAssembly's load*_splat operations, which were previously represented as a combination of Load and Splat instructions. However, there are architectures such as Armv8-A that have a single machine instruction equivalent to the Wasm operations. In order to generate it, it is necessary to merge the Load and the Splat in the backend, which is not possible because the load may have side effects. The new IR instruction works around this limitation.

The AArch64 backend leverages the new instruction to improve code generation. I am not really qualified to implement the optimization for x86, so I have added a temporary work-around to avoid any test breakage. It's a bit of a hack, but it should be incorrect only when cross-compiling to x86 on an Arm platform.

Fixes #1175 (but other backends need work too).

cc @abrown @cfallin

view this post on Zulip Wasmtime GitHub notifications bot (Oct 28 2020 at 19:52):

cfallin submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Oct 28 2020 at 19:54):

cfallin merged PR #2278.


Last updated: Dec 23 2024 at 12:05 UTC