8164954: split_if creates empty phi and region nodes
Don't split if all edges will be moved to new phi Reviewed-by: kvn, vlivanov
This commit is contained in:
parent
344eafdf14
commit
de10f56d52
@ -249,6 +249,13 @@ static Node* split_if(IfNode *iff, PhaseIterGVN *igvn) {
|
|||||||
predicate_proj = 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) {
|
if (nb_predicate_proj > 1) {
|
||||||
// Can happen in case of loop unswitching and when the loop is
|
// 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
|
// optimized out: it's not a loop anymore so we don't care about
|
||||||
|
Loading…
x
Reference in New Issue
Block a user