# HG changeset patch # User never # Date 1266613571 28800 # Node ID b71f13525cc81627484281b868ca3f10fa8011b4 # Parent 2883969d09e7624e8c58e07dc87432a1499f35ad 6927049: assert(is_Loop(),"invalid node class") Reviewed-by: kvn diff -r 2883969d09e7 -r b71f13525cc8 src/share/vm/opto/loopTransform.cpp --- a/src/share/vm/opto/loopTransform.cpp Fri Feb 19 10:04:16 2010 -0800 +++ b/src/share/vm/opto/loopTransform.cpp Fri Feb 19 13:06:11 2010 -0800 @@ -2117,6 +2117,18 @@ bool PhaseIdealLoop::loop_predication_impl(IdealLoopTree *loop) { if (!UseLoopPredicate) return false; + if (!loop->_head->is_Loop()) { + // Could be a simple region when irreducible loops are present. + return false; + } + + CountedLoopNode *cl = NULL; + if (loop->_head->is_CountedLoop()) { + cl = loop->_head->as_CountedLoop(); + // do nothing for iteration-splitted loops + if (!cl->is_normal_loop()) return false; + } + // Too many traps seen? bool tmt = C->too_many_traps(C->method(), 0, Deoptimization::Reason_predicate); int tc = C->trap_count(Deoptimization::Reason_predicate); @@ -2129,13 +2141,6 @@ return false; } - CountedLoopNode *cl = NULL; - if (loop->_head->is_CountedLoop()) { - cl = loop->_head->as_CountedLoop(); - // do nothing for iteration-splitted loops - if(!cl->is_normal_loop()) return false; - } - LoopNode *lpn = loop->_head->as_Loop(); Node* entry = lpn->in(LoopNode::EntryControl);