< prev index next >
src/share/vm/opto/ifnode.cpp
Print this page
rev 12674 : 8164954: split_if creates empty phi and region nodes
Summary: Don't split if all edges will be moved to new phi
Reviewed-by:
*** 247,256 ****
--- 247,263 ----
if (proj != NULL) {
nb_predicate_proj++;
predicate_proj = proj;
}
}
+
+ // If all the defs of the phi are the same constant, we already have the desired end state.
+ // Skip the split that would create empty phi and region nodes.
+ if((r->req() - req_c) == 1) {
+ return NULL;
+ }
+
if (nb_predicate_proj > 1) {
// Can happen in case of loop unswitching and when the loop is
// optimized out: it's not a loop anymore so we don't care about
// predicates.
assert(!r->is_Loop(), "this must not be a loop anymore");
< prev index next >