================
@@ -49,9 +104,9 @@ not related in *program-order* with any other operations 
from that thread. But
 the thread can use an asyncmark to ensure that the async operation is
 *completed-at* some later operation.
 
-An async operation `A` *initiated-by* an instruction `I` is *completed-at* some
-`wait.asyncmark()` operation `Y` if there exists an `asyncmark()` operation `X`
-such that:
+An async operation `A`, *initiated-by* an instruction `I` is *completed-at* 
some
+`wait.asyncmark()` operation `Y` if there exists an `asyncmark()` operation 
`X`:
+
----------------
RyanRio wrote:

```
An async operation `A`, *initiated-by* an instruction `I` is *completed-at* some
`wait.asyncmark()` operation `Y` with stage mask `B` if there exists an
`asyncmark()` operation `X` with mask `C`:

- `I` is *program-ordered* before `X`, and
- `I` belongs to a stage in `C`, and
- `X` is *completed-at* `Y`.
```

The stage mask `B` since that part is handled by completion of asyncmarks, and 
`X` completed-at `Y`.

> We may later move to a world where one instruction starts a sequence of 
> operations corresponding to different stages. We should ensure that the 
> current text is explicitly consistent with the one-stage assumption.

Yeah... this gets interesting, something along, we could say something like 
"all stages of `I` are present in `C`", but obviously we want to be able to 
only wait for individual parts of `I`, if the hardware exists for it. Anyhow, 
out of the scope of this PR.

https://github.com/llvm/llvm-project/pull/220442
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to