<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div>Hi Nicolai,</div><div><br class=""><blockquote type="cite" class=""><div class="">On Oct 28, 2020, at 3:13 PM, Nicolai Hähnle via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><div class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">The presentation from the dev meeting three weeks ago is here:</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><a href="https://www.youtube.com/watch?v=_Z5DuiVCFAw" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">https://www.youtube.com/watch?v=_Z5DuiVCFAw</a><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""></div></blockquote></div><br class=""><div class="">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?</div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class=""><br class=""></div><div class="">—Owen</div></body></html>