Skip to content
This repository has been archived by the owner on Feb 2, 2023. It is now read-only.

8253353: Crash in C2: guarantee(n != NULL) failed: No Node #263

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp
Expand Up @@ -2254,7 +2254,7 @@ void MemoryGraphFixer::collect_memory_nodes() {
uint last = _phase->C->unique();

#ifdef ASSERT
uint8_t max_depth = 0;
uint16_t max_depth = 0;
for (LoopTreeIterator iter(_phase->ltree_root()); !iter.done(); iter.next()) {
IdealLoopTree* lpt = iter.current();
max_depth = MAX2(max_depth, lpt->_nest);
Expand Down
2 changes: 2 additions & 0 deletions src/hotspot/share/opto/loopnode.cpp
Expand Up @@ -282,6 +282,7 @@ IdealLoopTree* PhaseIdealLoop::insert_outer_loop(IdealLoopTree* loop, LoopNode*
loop->_parent = outer_ilt;
loop->_next = NULL;
loop->_nest++;
assert(loop->_nest <= SHRT_MAX, "sanity");
return outer_ilt;
}

Expand Down Expand Up @@ -1880,6 +1881,7 @@ bool IdealLoopTree::is_member(const IdealLoopTree *l) const {
//------------------------------set_nest---------------------------------------
// Set loop tree nesting depth. Accumulate _has_call bits.
int IdealLoopTree::set_nest( uint depth ) {
assert(depth <= SHRT_MAX, "sanity");
_nest = depth;
int bits = _has_call;
if( _child ) bits |= _child->set_nest(depth+1);
Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/share/opto/loopnode.hpp
Expand Up @@ -494,7 +494,7 @@ class IdealLoopTree : public ResourceObj {

Node_List _body; // Loop body for inner loops

uint8_t _nest; // Nesting depth
uint16_t _nest; // Nesting depth
uint8_t _irreducible:1, // True if irreducible
_has_call:1, // True if has call safepoint
_has_sfpt:1, // True if has non-call safepoint
Expand Down