<div dir="ltr">BTW, note one further thing in your investigate.<div>Jikes, at least, would not handle this case.</div><div><br>It's a compile-time error in java to have unreachable code.</div><div>Additionally if i remember the JLS properly, the only statement that is allowed to not return is "throw"</div><div>Otherwise, everything else generally is may-return, and so, should already have the fake edges to exit anyway, they need them even outside the post-dom tree.</div><div><br></div><div>there are detailed rules at the JLS spec 14.21:<br><a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.21">http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.21</a></div><div><br></div><div>I would expect hotspot would be the same.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 13, 2017 at 12:43 PM, Daniel Berlin <span dir="ltr"><<a href="mailto:dberlin@dberlin.org" target="_blank">dberlin@dberlin.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div class="m_-5679080349905293811m_6551634944439883750gmail-h5"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>Most of the text above is just to give some background to others. I do<br>not expect you to answer in such detail. The only question I have if you<br>can give a specific example that would break with the alternative<br>solution I propose and which does not require strong post-dominance<br>(which is likely hard to guarantee)?<br></blockquote></div></div></div></div></div></blockquote></span><div>Yes. </div><div>ADCE breaks *right* now without the hack it has to try to work around this (which is not correct in all cases, FWIW).</div><div>This is directly because of the path property. It also can break in some cases because it's not sufficient to check just part of the path for the discontinuity you introduce above.</div><div><br></div><div>SSUPRE will break  because it relies on the path property to optimize stores properly.</div><div>In fact, i'm pretty much not aware of a single optimization relying on post-dom info that will not break. I'm also positive i can't work around it.</div><div><br></div></div></div></div></div></blockquote><div><br></div></span><div>As another analysis example, this will break the linear time reverse IDF calculation. It already does (and adce tries to work around that now), but it will so even more :)</div><div><br></div><div>It relies on the path property for correctness of the computation.</div><div><br></div></div></div></div>
</blockquote></div><br></div>