<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Oct 7, 2016, at 2:38 PM, Michael Gottesman via swift-dev <<a href="mailto:swift-dev@swift.org" class="">swift-dev@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Attached below is an updated version of the proposal. Again a rendered version is located at:</div><div class=""><br class=""></div><div class=""><a href="https://gottesmm.github.io/proposals/high-level-arc-memory-operations.html" class="">https://gottesmm.github.io/proposals/high-level-arc-memory-operations.html</a></div><div class=""><br class=""></div><div class="">Michael</div></div></div></blockquote><br class=""></div><div>This looks great Michael, a couple of comments/questions:</div><div><br class=""></div><div>typo: affects -> effects.</div><div><br class=""></div><div><br class=""></div>><span style="font-family: -webkit-standard;" class="">If ARC Code Motion wishes to move the ARC semantics of ownership qualified</span><span style="font-family: -webkit-standard;" class=""> </span><code class="highlighter-rouge">load</code><span style="font-family: -webkit-standard;" class="">,</span><span style="font-family: -webkit-standard;" class=""> </span><code class="highlighter-rouge">store</code><span style="font-family: -webkit-standard;" class=""> </span><span style="font-family: -webkit-standard;" class="">instructions, it must now consider read/write effects. On the other hand, it will be able to now not consider the side-effects of destructors when moving retain/release operations.</span><div class=""><div><br class=""></div><div>Can you elaborate on what you mean by this? Does this mean the ARC optimizer has additional freedom somehow to ignore side effects in deinits? What grants that ability?</div></div><div><br class=""></div><div>-Chris</div></body></html>