<div class="gmail_quote">Hi Vladimir and John,</div><div class="gmail_quote"><br></div><div class="gmail_quote">Thanks for polishing the changes!</div><div class="gmail_quote">Comments inline below:</div><div class="gmail_quote">
<br></div><div class="gmail_quote">On Thu, May 24, 2012 at 1:02 PM, John Rose <span dir="ltr"><<a href="mailto:john.r.rose@oracle.com" target="_blank">john.r.rose@oracle.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><div class="im"><div><div>On May 23, 2012, at 4:47 PM, Vladimir Kozlov wrote:</div><br><blockquote type="cite"><span style="border-collapse:separate;font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:medium">I updated webrev:<br>
<br><a href="http://cr.openjdk.java.net/~kvn/7170463/webrev.01" target="_blank">http://cr.openjdk.java.net/~kvn/7170463/webrev.01</a><br><br>I found additional issue with original changes. They accidentally removed optimization which replaces LoadKlass node with ConP (klass type) in map. Next code will not be executed:<br>
<br> cast = con; // Replace non-constant val by con.<br><br></span></blockquote></div></div></div></blockquote><div>Oops, I didn't notice this assignment handles Longs and Oops too. Thank for the catch!</div><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div class="im"><div><blockquote type="cite"><span style="border-collapse:separate;font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:medium">New code should do separate map update of object which klass is compared.<br>
</span></blockquote></div><br></div><div>That's fine; I like it.</div><div><br></div></div></blockquote><div>Yes, I like it better this way, too. I couldn't get a clean factoring of sharpen_type_after_if() with the new and old code mixed together; now it looks nice.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div></div><div>New question: Can the following call return Top?</div><div>
obj_type->join(con_type)</div><div><br></div><div>E.g.,</div><div> Number x = 5;</div><div> if (x.getClass() == String.class)</div><div> System.out.println("fail!");</div><div><br></div><div>Perhaps the compare will short-circuit before that happens. If it doesn't, we'll get assertion failures or worse.</div>
<span class="HOEnZb"><font color="#888888"><div><br></div></font></span></div></blockquote><div>Maybe we should just do without the join?</div><div><br></div><div>Thanks,</div><div>Kris</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><span class="HOEnZb"><font color="#888888"><div></div><div>— John</div></font></span></div></blockquote></div><br>