+ waitq_put(wenv->wq, n);
+ set_irn_link(n, wenv->wq);
+ }
+} /* wq_walker */
+
+/**
+ * The walker for the reassociation.
+ */
+static void do_reassociation(walker_t *wenv)
+{
+ int i, res, changed;
+ ir_node *n, *blk;
+
+
+ while (! waitq_empty(wenv->wq)) {
+ n = waitq_get(wenv->wq);
+ set_irn_link(n, NULL);
+
+ blk = get_nodes_block(n);
+ if (is_Block_dead(blk) || get_Block_dom_depth(blk) < 0) {
+ /* We are in a dead block, do not optimize or we may fall into an endless
+ loop. We check this here instead of requiring that all dead blocks are removed
+ which or cf_opt do not guarantee yet. */
+ continue;
+ }
+