review request (S): 7126041: jdk7u4 b05 and b06 crash with RubyMine 3.2.4, works well with b04

Igor Veresov igor.veresov at oracle.com
Mon Feb 13 10:41:05 PST 2012


Looks good! Thanks for fixing that.  

May be this following function can be moved to Canonicalizer ?
597 static bool is_safepoint(BlockEnd* x, BlockBegin* sux) { 598 return x->is_safepoint() && (sux->bci() < x->state_before()->bci()); 599 }


igor


On Friday, February 10, 2012 at 9:16 AM, Roland Westrelin wrote:

> http://cr.openjdk.java.net/~roland/7126041/webrev.00/
> 
> When incrementing backedge counters in a c1 method some forward branches can be mistaken for back branches: when a If is converted to a Goto, the Goto is marked as a safepoint even if the branch that is kept is the forward branch. When a Goto is marked as a safepoint, profiling code is emitted for a back branch so we can end up doing an OSR compile for a back branch that is never taken to some code the compiler thinks is unreachable. 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120213/b4ecec1c/attachment.html 


More information about the hotspot-compiler-dev mailing list