int first;
(void) env;
- first = -1;
+ first = is_Block(irn) ? 0 : -1;
for (i = get_irn_arity(irn) - 1; i >= first; --i) {
ir_node *op = get_irn_n(irn, i);
bitset_t *bs = (bitset_t*)get_irn_link(op);
{
const ir_edge_t *edge, *next;
- if (irn_visited(node))
+ if (irn_visited_else_mark(node))
return;
- mark_irn_visited(node);
if (pre != NULL)
pre(node, env);