Add fence instruction and encoding to overview#141
Merged
Conversation
binji
reviewed
Jun 19, 2019
proposals/threads/Overview.md
Outdated
|
|
||
| The fence operator, `atomic.fence`, takes no operands, and returns nothing. It is intended to preserve the semantics of the [fence operators of higher-level languages](https://en.cppreference.com/w/cpp/atomic/atomic_thread_fence). | ||
|
|
||
| Unlike other atomic operators, `atomic.fence` does not target a particular linear memory, and it is therefore *not* a validation error for this operator to be used in a module that does not declare a shared memory. |
Member
There was a problem hiding this comment.
nit: I assume it's also OK to be used in a module that declares no memory at all.
Collaborator
Author
There was a problem hiding this comment.
yes; clarified this
Collaborator
Author
|
Is there anything I can do to move this forward? I've addressed previous comments. |
lars-t-hansen
approved these changes
Jul 5, 2019
|
@binji, can you review too? |
binji
approved these changes
Jul 8, 2019
Member
binji
left a comment
There was a problem hiding this comment.
sorry, reviewed earlier but didn't approve
pull bot
pushed a commit
to Richienb/v8
that referenced
this pull request
Jul 19, 2019
This adds decoding and compilation of the "atomic.fence" operator, which is intended to preserve the synchronization guarantees of higher-level languages. Unlike other atomic operators, it does not target a particular linear memory. It may occur in modules which declare no memory, or a non-shared memory, without causing a validation error. See proposal: WebAssembly/threads#141 See discussion: WebAssembly/threads#140 R=clemensh@chromium.org TEST=cctest/test-run-wasm-atomics/RunWasmXXX_AtomicFence BUG=v8:9452 Change-Id: Ibf7e46227f7edfe5c81c097cfc15924c59614067 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1701856 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#62821}
pull bot
pushed a commit
to Richienb/v8
that referenced
this pull request
Jul 22, 2019
port 4ca8b4d https://crrev.com/c/1701856 Original Commit Message: This adds decoding and compilation of the "atomic.fence" operator, which is intended to preserve the synchronization guarantees of higher-level languages. Unlike other atomic operators, it does not target a particular linear memory. It may occur in modules which declare no memory, or a non-shared memory, without causing a validation error. See proposal: WebAssembly/threads#141 See discussion: WebAssembly/threads#140 Change-Id: Ia60d58a6bf58e8236591d515d30184418cee47c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1710337 Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yu Yin <xwafish@gmail.com> Cr-Commit-Position: refs/heads/master@{#62843}
pull bot
pushed a commit
to Richienb/v8
that referenced
this pull request
Jul 22, 2019
Port 4ca8b4d Original Commit Message: This adds decoding and compilation of the "atomic.fence" operator, which is intended to preserve the synchronization guarantees of higher-level languages. Unlike other atomic operators, it does not target a particular linear memory. It may occur in modules which declare no memory, or a non-shared memory, without causing a validation error. See proposal: WebAssembly/threads#141 See discussion: WebAssembly/threads#140 R=mstarzinger@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:9452 LOG=N Change-Id: Ib8ad24e65154d7555a47e537f81110be47f4d4de Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1710620 Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62850}
moz-v2v-gh
pushed a commit
to mozilla/gecko-dev
that referenced
this pull request
Jul 29, 2019
This commit implements the 'atomic.fence' Wasm instruction. Issue: WebAssembly/threads#140 Overview: WebAssembly/threads#141 The instruction is encoded as, 0xFE 0x03, with a reserved byte trailing for a future memory order immediate. The instruction is implemented by emitting a memoryBarrier through the macro assembler. Differential Revision: https://phabricator.services.mozilla.com/D39264 --HG-- extra : moz-landing-system : lando
xeonchen
pushed a commit
to xeonchen/gecko
that referenced
this pull request
Jul 30, 2019
This commit implements the 'atomic.fence' Wasm instruction. Issue: WebAssembly/threads#140 Overview: WebAssembly/threads#141 The instruction is encoded as, 0xFE 0x03, with a reserved byte trailing for a future memory order immediate. The instruction is implemented by emitting a memoryBarrier through the macro assembler. Differential Revision: https://phabricator.services.mozilla.com/D39264
gecko-dev-updater
pushed a commit
to marco-c/gecko-dev-comments-removed
that referenced
this pull request
Oct 4, 2019
This commit implements the 'atomic.fence' Wasm instruction. Issue: WebAssembly/threads#140 Overview: WebAssembly/threads#141 The instruction is encoded as, 0xFE 0x03, with a reserved byte trailing for a future memory order immediate. The instruction is implemented by emitting a memoryBarrier through the macro assembler. Differential Revision: https://phabricator.services.mozilla.com/D39264 UltraBlame original commit: d32c27f13f21b0927cbfb7ce6f8509c0dea6bf09
gecko-dev-updater
pushed a commit
to marco-c/gecko-dev-wordified
that referenced
this pull request
Oct 4, 2019
This commit implements the 'atomic.fence' Wasm instruction. Issue: WebAssembly/threads#140 Overview: WebAssembly/threads#141 The instruction is encoded as, 0xFE 0x03, with a reserved byte trailing for a future memory order immediate. The instruction is implemented by emitting a memoryBarrier through the macro assembler. Differential Revision: https://phabricator.services.mozilla.com/D39264 UltraBlame original commit: d32c27f13f21b0927cbfb7ce6f8509c0dea6bf09
gecko-dev-updater
pushed a commit
to marco-c/gecko-dev-wordified-and-comments-removed
that referenced
this pull request
Oct 4, 2019
This commit implements the 'atomic.fence' Wasm instruction. Issue: WebAssembly/threads#140 Overview: WebAssembly/threads#141 The instruction is encoded as, 0xFE 0x03, with a reserved byte trailing for a future memory order immediate. The instruction is implemented by emitting a memoryBarrier through the macro assembler. Differential Revision: https://phabricator.services.mozilla.com/D39264 UltraBlame original commit: d32c27f13f21b0927cbfb7ce6f8509c0dea6bf09
wingo
added a commit
to wingo/wabt
that referenced
this pull request
Nov 18, 2019
See WebAssembly/threads#141 for the binary encoding. This patch does add a field to AtomicFenceExpr for the consistency model, though without a type for the time being.
wingo
added a commit
to wingo/wabt
that referenced
this pull request
Apr 20, 2020
See WebAssembly/threads#141 for the binary encoding. This patch does add a field to AtomicFenceExpr for the consistency model, though without a type for the time being.
binji
pushed a commit
to WebAssembly/wabt
that referenced
this pull request
Apr 20, 2020
See WebAssembly/threads#141 for the binary encoding. This patch does add a field to AtomicFenceExpr for the consistency model, though without a type for the time being.
ngzhian
added a commit
to ngzhian/wasmparser
that referenced
this pull request
Aug 18, 2020
atomic.fence was added to the threads proposal in WebAssembly/threads#141, and supported in wabt in WebAssembly/wabt@d041025#diff-25d902c24283ab8cfbac54dfa101ad31.
bmeurer
pushed a commit
to wasdk/wasmparser
that referenced
this pull request
Aug 19, 2020
atomic.fence was added to the threads proposal in WebAssembly/threads#141, and supported in wabt in WebAssembly/wabt@d041025#diff-25d902c24283ab8cfbac54dfa101ad31.
bhearsum
pushed a commit
to mozilla-releng/staging-firefox
that referenced
this pull request
May 1, 2025
This commit implements the 'atomic.fence' Wasm instruction. Issue: WebAssembly/threads#140 Overview: WebAssembly/threads#141 The instruction is encoded as, 0xFE 0x03, with a reserved byte trailing for a future memory order immediate. The instruction is implemented by emitting a memoryBarrier through the macro assembler. Differential Revision: https://phabricator.services.mozilla.com/D39264
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Following #140