ppir_node_foreach_succ_safe(node, dep) {
ppir_node *succ = dep->succ;
- assert(succ->type == ppir_node_type_alu);
+ assert(succ->type == ppir_node_type_alu ||
+ succ->type == ppir_node_type_branch);
if (!ppir_instr_insert_node(succ->instr, node)) {
/* create a move node to insert for failed node */
node = move;
break;
}
+ case ppir_node_type_discard:
+ if (!create_new_instr(block, node))
+ return false;
+ node->instr->is_end = true;
+ break;
+ case ppir_node_type_branch:
+ if (!create_new_instr(block, node))
+ return false;
+ break;
default:
return false;
}