提交 d4db62b3 编写于 作者: K kvn

7089632: assert(machtmp->outcnt() == 1) failed: expected for a MachTemp

Summary: Replace assert with check to delete MachTemp nodes only when they are really dead.
Reviewed-by: never
上级 ad10273b
......@@ -100,10 +100,13 @@ int PhaseChaitin::yank_if_dead( Node *old, Block *current_block, Node_List *valu
Node *tmp = NULL;
for (uint i = 1; i < old->req(); i++) {
if (old->in(i)->is_MachTemp()) {
// handle TEMP inputs
Node* machtmp = old->in(i);
assert(machtmp->outcnt() == 1, "expected for a MachTemp");
blk_adjust += yank(machtmp, current_block, value, regnd);
machtmp->disconnect_inputs(NULL);
if (machtmp->outcnt() == 1) {
assert(machtmp->unique_out() == old, "sanity");
blk_adjust += yank(machtmp, current_block, value, regnd);
machtmp->disconnect_inputs(NULL);
}
} else {
assert(tmp == NULL, "can't handle more non MachTemp inputs");
tmp = old->in(i);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册