Mercurial > hg > graal-compiler
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. |