+ ir_nodehashmap_init(&lv->map);
+ obstack_init(&lv->obst);
+
+ n = get_irg_last_idx(lv->irg);
+ nodes = NEW_ARR_F(ir_node *, n);
+ memset(nodes, 0, sizeof(nodes[0]) * n);
+
+ /* inserting the variables sorted by their ID is probably
+ * more efficient since the binary sorted set insertion
+ * will not need to move around the data. */
+ irg_walk_graph(lv->irg, NULL, collect_liveness_nodes, nodes);
+
+ re.lv = lv;
+ re.visited = bitset_malloc(n);
+
+ for (i = 0; i < n; ++i) {
+ if (nodes[i] != NULL)
+ liveness_for_node(nodes[i]);
+ }
+
+ DEL_ARR_F(nodes);
+ free(re.visited);
+ register_hook(hook_node_info, &lv->hook_info);
+
+ be_timer_pop(T_LIVE);
+
+ lv->sets_valid = true;