< 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 >