Mercurial > hg > truffle
diff src/share/vm/opto/loopnode.cpp @ 1083:8b22f86d1740
6901572: JVM 1.6.16 crash on loops: assert(has_node(i),"")
Summary: Skip the secondary induction variable handling if it is dead
Reviewed-by: never, kvn
author | cfang |
---|---|
date | Wed, 02 Dec 2009 13:29:00 -0800 |
parents | 046932b72aa2 |
children | b2b6a9bf6238 |
line wrap: on
line diff
--- a/src/share/vm/opto/loopnode.cpp Tue Dec 01 22:11:01 2009 -0800 +++ b/src/share/vm/opto/loopnode.cpp Wed Dec 02 13:29:00 2009 -0800 @@ -1279,7 +1279,8 @@ // Visit all children, looking for Phis for (DUIterator i = cl->outs(); cl->has_out(i); i++) { Node *out = cl->out(i); - if (!out->is_Phi() || out == phi) continue; // Looking for other phis + // Look for other phis (secondary IVs). Skip dead ones + if (!out->is_Phi() || out == phi || !phase->has_node(out)) continue; PhiNode* phi2 = out->as_Phi(); Node *incr2 = phi2->in( LoopNode::LoopBackControl ); // Look for induction variables of the form: X += constant