Mercurial > hg > truffle
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(); |