--- a/hotspot/src/share/vm/opto/ifnode.cpp Thu Jul 28 13:03:39 2011 -0700
+++ b/hotspot/src/share/vm/opto/ifnode.cpp Fri Jul 29 09:16:29 2011 -0700
@@ -255,6 +255,14 @@
predicate_x = predicate_proj;
}
}
+ if (predicate_c != NULL && (req_c > 1)) {
+ assert(predicate_x == NULL, "only one predicate entry expected");
+ predicate_c = NULL; // Do not clone predicate below merge point
+ }
+ if (predicate_x != NULL && ((len - req_c) > 2)) {
+ assert(predicate_c == NULL, "only one predicate entry expected");
+ predicate_x = NULL; // Do not clone predicate below merge point
+ }
// Register the new RegionNodes but do not transform them. Cannot
// transform until the entire Region/Phi conglomerate has been hacked