comparison src/share/vm/opto/gcm.cpp @ 621:19f25e603e7b

6812721: Block's frequency should not be NaN Summary: Set MIN_BLOCK_FREQUENCY block's frequency when calculated block's frequency is NaN Reviewed-by: never
author kvn
date Tue, 03 Mar 2009 18:25:57 -0800
parents 98cb887364d3
children 7bb995fbd3c0
comparison
equal deleted inserted replaced
607:d8c7fa77a6dc 621:19f25e603e7b
1899 void CFGLoop::scale_freq() { 1899 void CFGLoop::scale_freq() {
1900 float loop_freq = _freq * trip_count(); 1900 float loop_freq = _freq * trip_count();
1901 for (int i = 0; i < _members.length(); i++) { 1901 for (int i = 0; i < _members.length(); i++) {
1902 CFGElement* s = _members.at(i); 1902 CFGElement* s = _members.at(i);
1903 float block_freq = s->_freq * loop_freq; 1903 float block_freq = s->_freq * loop_freq;
1904 if (block_freq < MIN_BLOCK_FREQUENCY) block_freq = MIN_BLOCK_FREQUENCY; 1904 if (g_isnan(block_freq) || block_freq < MIN_BLOCK_FREQUENCY)
1905 block_freq = MIN_BLOCK_FREQUENCY;
1905 s->_freq = block_freq; 1906 s->_freq = block_freq;
1906 } 1907 }
1907 CFGLoop* ch = _child; 1908 CFGLoop* ch = _child;
1908 while (ch != NULL) { 1909 while (ch != NULL) {
1909 ch->scale_freq(); 1910 ch->scale_freq();