--- a/hotspot/src/share/vm/ci/ciTypeFlow.cpp Tue Sep 15 22:50:12 2009 -0700
+++ b/hotspot/src/share/vm/ci/ciTypeFlow.cpp Wed Sep 16 11:06:10 2009 -0700
@@ -2486,8 +2486,13 @@
// Assume irreducible entries need more data flow
add_to_work_list(succ);
}
- lp = lp->parent();
- assert(lp != NULL, "nested loop must have parent by now");
+ Loop* plp = lp->parent();
+ if (plp == NULL) {
+ // This only happens for some irreducible cases. The parent
+ // will be updated during a later pass.
+ break;
+ }
+ lp = plp;
}
// Merge loop tree branch for all successors.