+static ir_node *get_first_neighbour(const ifg_list_t *ifg, adj_iter_t *it, const ir_node *curr_irn)
+{
+ ir_node *res = NULL;
+ adj_head_t *adj_head = NULL;
+
+ adj_head = ifg->adj_heads[curr_irn->node_idx];
+ assert (adj_head && "There is no entry for this node");
+
+ it->curr_adj_element = NULL;
+ it->ifg = ifg;
+
+ if (adj_head->first_adj_element) /* return first neighbour */
+ {
+ res = adj_head->first_adj_element->neighbour;
+ it->curr_adj_element = adj_head->first_adj_element;
+ }
+ else /* node has no neighbours */
+ return NULL;