Conversation
|
I thought we had discussed this already in #442 and the plan was to expose these through the rust stdlib, instead of custom instructions? |
|
To be clear, if I recall correctly, the entire purpose of the arch module is intended to let us prototype high level abstractions over SPIR-V concepts without getting into compiler work. There is already a high level abstraction in place for atomics ( |
Well there's no discussion in that thread, so if we did discuss it , it wasn't there and I don't remember it beyond "yes we should have them". I don't have a strong opinion on how we do it, but as I've read the spec more I'm not sure stdlib is complete abstraction for SPIR-V's atomics. For example there are way more memory semantics in SPIR-V than just |
4cdb905 to
6bce70a
Compare
e814b94 to
1473e20
Compare
|
(Re-opened temporarily to force push a rebase - the presence of the |
|
@eddyb I can delete the branch if that helps. |
@XAMPPRocky Only if you think it's been obsoleted by e.g.: (even if you delete the branch now, I still thing my cleanup of it was worth it, because the PR doesn't look extremely broken - idk how much that persists after deleting the branch, but better safe than sorry) |
This PR adds nearly all of the SPIR-V atomic instructions, the only ones not implemented are the ones around atomic flags as we don't have a type for them at the moment.
Depends on #519