diff -r 30b3986c8150 -r 9088094e3e81 hotspot/src/share/vm/opto/gcm.cpp --- a/hotspot/src/share/vm/opto/gcm.cpp Tue Mar 03 10:34:22 2009 -0800 +++ b/hotspot/src/share/vm/opto/gcm.cpp Tue Mar 03 18:25:57 2009 -0800 @@ -1901,7 +1901,8 @@ for (int i = 0; i < _members.length(); i++) { CFGElement* s = _members.at(i); float block_freq = s->_freq * loop_freq; - if (block_freq < MIN_BLOCK_FREQUENCY) block_freq = MIN_BLOCK_FREQUENCY; + if (g_isnan(block_freq) || block_freq < MIN_BLOCK_FREQUENCY) + block_freq = MIN_BLOCK_FREQUENCY; s->_freq = block_freq; } CFGLoop* ch = _child;