comparison src/share/vm/opto/ifnode.cpp @ 3845:c96c3eb1efae

7068051: SIGSEGV in PhaseIdealLoop::build_loop_late_post Summary: Removed predicate cloning from loop peeling optimization and from split fall-in paths. Reviewed-by: never
author kvn
date Fri, 29 Jul 2011 09:16:29 -0700
parents 4e761e7e6e12
children 5e990493719e
comparison
equal deleted inserted replaced
3844:ce3e1d4dc416 3845:c96c3eb1efae
252 region_x->init_req( i_x, r ->in(i) ); 252 region_x->init_req( i_x, r ->in(i) );
253 phi_x ->init_req( i_x++, phi->in(i) ); 253 phi_x ->init_req( i_x++, phi->in(i) );
254 if (r->in(i) == predicate_proj) 254 if (r->in(i) == predicate_proj)
255 predicate_x = predicate_proj; 255 predicate_x = predicate_proj;
256 } 256 }
257 }
258 if (predicate_c != NULL && (req_c > 1)) {
259 assert(predicate_x == NULL, "only one predicate entry expected");
260 predicate_c = NULL; // Do not clone predicate below merge point
261 }
262 if (predicate_x != NULL && ((len - req_c) > 2)) {
263 assert(predicate_c == NULL, "only one predicate entry expected");
264 predicate_x = NULL; // Do not clone predicate below merge point
257 } 265 }
258 266
259 // Register the new RegionNodes but do not transform them. Cannot 267 // Register the new RegionNodes but do not transform them. Cannot
260 // transform until the entire Region/Phi conglomerate has been hacked 268 // transform until the entire Region/Phi conglomerate has been hacked
261 // as a single huge transform. 269 // as a single huge transform.