-/* Remove Bad nodes from Phi and Block inputs.
- *
- * This does NOT remove unreachable code.
- *
- * Postcondition: No Bad nodes.
- */
+static void collect(ir_node *node, void *env)
+{
+ firm_collect_block_phis(node, NULL);
+ if (is_Block(node)) {
+ ir_node ***blocks_to_process = (ir_node***)env;
+ int arity = get_irn_arity(node);
+ int non_bads = count_non_bads(node);
+ if (arity != non_bads)
+ ARR_APP1(ir_node*, *blocks_to_process, node);
+ }
+}
+