================ @@ -233,10 +357,13 @@ After inlining, both `B` and `C` are *completed-at* `Y`. ### Optimization The implementation may eliminate asyncmark/wait intrinsics in the following -cases. These are just examples and not meant to be an exhaustive list. +cases. These are just examples and not meant to be an exhaustive list. Each +applies per stage: the sequences are independent, so an asyncmark in one stage +is unaffected by the waits of another. -1. An `asyncmark` operation which remains in the current sequence along every - path that reaches the function exit. +1. An `asyncmark` in a stage `S` which remains in the current sequence of `S` + along every path that reaches the function exit. An `asyncmark` operation is + eliminated entirely only once this holds for every stage it covers. ---------------- ssahasra wrote:
Not really true for independent stages, right? Some stages can be removed while keeping the asyncmark operation in place? https://github.com/llvm/llvm-project/pull/220442 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
