8262465: Very long compilation times and high memory consumption in C2 debug builds

Reviewed-by: kvn, thartmann
This commit is contained in:
Nils Eliasson 2021-03-23 07:45:48 +00:00
parent 0b03d04792
commit 2da882c0fa

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -1278,15 +1278,17 @@ uint PhaseChaitin::Split(uint maxlrg, ResourceArea* split_arena) {
IndexSet *liveout = _live->live(b); IndexSet *liveout = _live->live(b);
if( !liveout->member(defidx) ) { if( !liveout->member(defidx) ) {
#ifdef ASSERT #ifdef ASSERT
// The index defidx is not live. Check the liveout array to ensure that if (VerifyRegisterAllocator) {
// it contains no members which compress to defidx. Finding such an // The index defidx is not live. Check the liveout array to ensure that
// instance may be a case to add liveout adjustment in compress_uf_map(). // it contains no members which compress to defidx. Finding such an
// See 5063219. // instance may be a case to add liveout adjustment in compress_uf_map().
if (!liveout->is_empty()) { // See 5063219.
uint member; if (!liveout->is_empty()) {
IndexSetIterator isi(liveout); uint member;
while ((member = isi.next()) != 0) { IndexSetIterator isi(liveout);
assert(defidx != _lrg_map.find_const(member), "Live out member has not been compressed"); while ((member = isi.next()) != 0) {
assert(defidx != _lrg_map.find_const(member), "Live out member has not been compressed");
}
} }
} }
#endif #endif