mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
6909440: C2 fails with assertion (_always_cold->is_cold(),"must always be cold")
Reviewed-by: kvn
This commit is contained in:
parent
3ad32dbe57
commit
5cd8d5c115
2 changed files with 22 additions and 22 deletions
|
@ -978,31 +978,19 @@ WarmCallInfo* WarmCallInfo::remove_from(WarmCallInfo* head) {
|
||||||
return head;
|
return head;
|
||||||
}
|
}
|
||||||
|
|
||||||
WarmCallInfo* WarmCallInfo::_always_hot = NULL;
|
WarmCallInfo WarmCallInfo::_always_hot(WarmCallInfo::MAX_VALUE(), WarmCallInfo::MAX_VALUE(),
|
||||||
WarmCallInfo* WarmCallInfo::_always_cold = NULL;
|
WarmCallInfo::MIN_VALUE(), WarmCallInfo::MIN_VALUE());
|
||||||
|
WarmCallInfo WarmCallInfo::_always_cold(WarmCallInfo::MIN_VALUE(), WarmCallInfo::MIN_VALUE(),
|
||||||
|
WarmCallInfo::MAX_VALUE(), WarmCallInfo::MAX_VALUE());
|
||||||
|
|
||||||
WarmCallInfo* WarmCallInfo::always_hot() {
|
WarmCallInfo* WarmCallInfo::always_hot() {
|
||||||
if (_always_hot == NULL) {
|
assert(_always_hot.is_hot(), "must always be hot");
|
||||||
static double bits[sizeof(WarmCallInfo) / sizeof(double) + 1] = {0};
|
return &_always_hot;
|
||||||
WarmCallInfo* ci = (WarmCallInfo*) bits;
|
|
||||||
ci->_profit = ci->_count = MAX_VALUE();
|
|
||||||
ci->_work = ci->_size = MIN_VALUE();
|
|
||||||
_always_hot = ci;
|
|
||||||
}
|
|
||||||
assert(_always_hot->is_hot(), "must always be hot");
|
|
||||||
return _always_hot;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WarmCallInfo* WarmCallInfo::always_cold() {
|
WarmCallInfo* WarmCallInfo::always_cold() {
|
||||||
if (_always_cold == NULL) {
|
assert(_always_cold.is_cold(), "must always be cold");
|
||||||
static double bits[sizeof(WarmCallInfo) / sizeof(double) + 1] = {0};
|
return &_always_cold;
|
||||||
WarmCallInfo* ci = (WarmCallInfo*) bits;
|
|
||||||
ci->_profit = ci->_count = MIN_VALUE();
|
|
||||||
ci->_work = ci->_size = MAX_VALUE();
|
|
||||||
_always_cold = ci;
|
|
||||||
}
|
|
||||||
assert(_always_cold->is_cold(), "must always be cold");
|
|
||||||
return _always_cold;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -215,8 +215,20 @@ class WarmCallInfo : public ResourceObj {
|
||||||
WarmCallInfo* next() const { return _next; }
|
WarmCallInfo* next() const { return _next; }
|
||||||
void set_next(WarmCallInfo* n) { _next = n; }
|
void set_next(WarmCallInfo* n) { _next = n; }
|
||||||
|
|
||||||
static WarmCallInfo* _always_hot;
|
static WarmCallInfo _always_hot;
|
||||||
static WarmCallInfo* _always_cold;
|
static WarmCallInfo _always_cold;
|
||||||
|
|
||||||
|
// Constructor intitialization of always_hot and always_cold
|
||||||
|
WarmCallInfo(float c, float p, float w, float s) {
|
||||||
|
_call = NULL;
|
||||||
|
_hot_cg = NULL;
|
||||||
|
_next = NULL;
|
||||||
|
_count = c;
|
||||||
|
_profit = p;
|
||||||
|
_work = w;
|
||||||
|
_size = s;
|
||||||
|
_heat = 0;
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Because WarmInfo objects live over the entire lifetime of the
|
// Because WarmInfo objects live over the entire lifetime of the
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue