[llvm-dev] [RFC] Introducing convergence control bundles and intrinsics

Owen Anderson via llvm-dev llvm-dev at lists.llvm.org
Wed Oct 28 16:09:29 PDT 2020


Hi Nicolai,

> On Oct 28, 2020, at 3:13 PM, Nicolai Hähnle via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> The presentation from the dev meeting three weeks ago is here:
> https://www.youtube.com/watch?v=_Z5DuiVCFAw <https://www.youtube.com/watch?v=_Z5DuiVCFAw>

I have not studied the new proposal yet, but I wanted to ask a question about the JumpThreading example in your dev meeting talk: does allowing this transformation break programs?

I’m asking because my reading of the semantic correctness of the jump-threading transformation is that it *is* allowed by the current convergent annotation: the execution of the barrier() intrinsic depends on the value of `condition` in both the before and after cases.  In the former, it is a transitive dependency via `flag`, but still a dependency.  This seems to differ from your interpretation of the example, so I’m wondering to what degree clarifying the definition to include transitive dependencies would eliminate some or all spooky action, and whether doing so would result in broken programs.

Thanks,

—Owen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201028/362f5fe1/attachment.html>


More information about the llvm-dev mailing list