提交 87ed4cb2 编写于 作者: K kevinw

8164954: split_if creates empty phi and region nodes

Summary: Don't split if all edges will be moved to new phi
Reviewed-by: kvn
上级 c96cd44d
...@@ -234,6 +234,13 @@ static Node* split_if(IfNode *iff, PhaseIterGVN *igvn) { ...@@ -234,6 +234,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;
}
Node* predicate_c = NULL; Node* predicate_c = NULL;
Node* predicate_x = NULL; Node* predicate_x = NULL;
bool counted_loop = r->is_CountedLoop(); bool counted_loop = r->is_CountedLoop();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册