8203425: assert(is_Loop()) failed: invalid node class
Summary: Revert 8203215
Reviewed-by: thartmann
--- a/src/hotspot/share/opto/loopnode.cpp Fri Jun 08 13:06:08 2018 +0200
+++ b/src/hotspot/share/opto/loopnode.cpp Fri Jun 08 14:50:18 2018 +0200
@@ -2641,6 +2641,9 @@
int old_progress = C->major_progress();
uint orig_worklist_size = _igvn._worklist.size();
+ // Reset major-progress flag for the driver's heuristics
+ C->clear_major_progress();
+
#ifndef PRODUCT
// Capture for later assert
uint unique = C->unique();
@@ -2711,16 +2714,11 @@
if( !_verify_me && !_verify_only && _ltree_root->_child ) {
C->print_method(PHASE_BEFORE_BEAUTIFY_LOOPS, 3);
if( _ltree_root->_child->beautify_loops( this ) ) {
- // IdealLoopTree::split_outer_loop may produce phi-nodes with a single in edge.
- // Transform them away.
- _igvn.optimize();
-
// Re-build loop tree!
_ltree_root->_child = NULL;
_nodes.clear();
reallocate_preorders();
build_loop_tree();
-
// Check for bailout, and return
if (C->failing()) {
return;
@@ -2732,9 +2730,6 @@
}
}
- // Reset major-progress flag for the driver's heuristics
- C->clear_major_progress();
-
// Build Dominators for elision of NULL checks & loop finding.
// Since nodes do not have a slot for immediate dominator, make
// a persistent side array for that info indexed on node->_idx.