mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
6784930: server jvm fails with assert(!n->is_SpillCopy(),"")
Set minimum block frequency MIN_BLOCK_FREQUENCY 1.e-35f. Reviewed-by: never, rasbold
This commit is contained in:
parent
1ff1bdc3e6
commit
78f5dc395e
1 changed files with 13 additions and 1 deletions
|
@ -29,6 +29,9 @@
|
||||||
#include "incls/_precompiled.incl"
|
#include "incls/_precompiled.incl"
|
||||||
#include "incls/_gcm.cpp.incl"
|
#include "incls/_gcm.cpp.incl"
|
||||||
|
|
||||||
|
// To avoid float value underflow
|
||||||
|
#define MIN_BLOCK_FREQUENCY 1.e-35f
|
||||||
|
|
||||||
//----------------------------schedule_node_into_block-------------------------
|
//----------------------------schedule_node_into_block-------------------------
|
||||||
// Insert node n into block b. Look for projections of n and make sure they
|
// Insert node n into block b. Look for projections of n and make sure they
|
||||||
// are in b also.
|
// are in b also.
|
||||||
|
@ -1380,6 +1383,13 @@ void PhaseCFG::Estimate_Block_Frequency() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ASSERT
|
||||||
|
for (uint i = 0; i < _num_blocks; i++ ) {
|
||||||
|
Block *b = _blocks[i];
|
||||||
|
assert(b->_freq >= MIN_BLOCK_FREQUENCY, "Register Allocator requiers meaningful block frequency");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef PRODUCT
|
#ifndef PRODUCT
|
||||||
if (PrintCFGBlockFreq) {
|
if (PrintCFGBlockFreq) {
|
||||||
tty->print_cr("CFG Block Frequencies");
|
tty->print_cr("CFG Block Frequencies");
|
||||||
|
@ -1877,7 +1887,9 @@ void CFGLoop::scale_freq() {
|
||||||
float loop_freq = _freq * trip_count();
|
float loop_freq = _freq * trip_count();
|
||||||
for (int i = 0; i < _members.length(); i++) {
|
for (int i = 0; i < _members.length(); i++) {
|
||||||
CFGElement* s = _members.at(i);
|
CFGElement* s = _members.at(i);
|
||||||
s->_freq *= loop_freq;
|
float block_freq = s->_freq * loop_freq;
|
||||||
|
if (block_freq < MIN_BLOCK_FREQUENCY) block_freq = MIN_BLOCK_FREQUENCY;
|
||||||
|
s->_freq = block_freq;
|
||||||
}
|
}
|
||||||
CFGLoop* ch = _child;
|
CFGLoop* ch = _child;
|
||||||
while (ch != NULL) {
|
while (ch != NULL) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue