+
+ my_live = bitset_malloc(get_irg_last_idx(ifg->env->irg));
+ last_element.element = get_last_sub_clique(ifg, live, my_live, irn);
+
+ /* check and add still living nodes */
+ //bitset_remv_irn(my_live, irn);
+ if (bitset_popcnt(my_live) > 1)
+ {
+ if (last_element.element)
+ {
+ bitset_foreach_irn(ifg->env->irg, my_live, my_elm, my_irn)
+ {
+ ptr_element_t *my_element = ptr_get_new_element(ifg);
+ my_element->content_first.element = last_element.element;
+ my_element->content_second.irn = my_irn;
+ my_element->kind = 3101; /* first is an element, second an ir_node */
+
+ last_element.element = my_element;
+ ifg->curr_element = my_element;
+ }
+ }
+ else
+ {
+ bitset_foreach_irn(ifg->env->irg, my_live, my_elm, my_irn)
+ {
+ ptr_element_t *my_element = NULL;
+ if (!first && !was_first)
+ {
+ first = my_irn;
+ was_first = 1;
+ }
+ else
+ {
+ if (first && was_first)
+ {
+ my_element = ptr_get_new_element(ifg);
+ my_element->content_first.irn = first;
+ my_element->content_second.irn = my_irn;
+ my_element->kind = 8888; /* both are ir_nodes */
+ last_element.element = my_element;
+ ifg->curr_element = my_element;
+
+ if (my_irn->node_nr == 1883 || my_irn->node_nr == 1858 || my_irn->node_nr == 1936)
+ i=1;
+
+
+ first = NULL;
+ }
+ else
+ {
+ my_element = ptr_get_new_element(ifg);
+ my_element->content_first.element = last_element.element;
+ my_element->content_second.irn = my_irn;
+ my_element->kind = 3101; /* first is an element, second an ir_node */
+ last_element.element = my_element;
+ ifg->curr_element = my_element;
+ }
+ }
+ }
+ was_first = 0;
+ }
+ }
+ else
+ {
+ if (bitset_popcnt(my_live) == 1) /* there is only one node left */
+ {
+ if (last_element.element)
+ {
+ bitset_foreach_irn(ifg->env->irg, my_live, my_elm, my_irn)
+ {
+ ptr_element_t *my_element = ptr_get_new_element(ifg);
+ my_element->content_first.element = last_element.element;
+ my_element->content_second.irn = my_irn;
+ my_element->kind = 3101; /* first is an element, second an ir_node */
+
+ last_element.element = my_element;
+ ifg->curr_element = my_element;
+ }
+ }
+ else
+ {
+ bitset_foreach_irn(ifg->env->irg, my_live, my_elm, my_irn);
+ {
+ ptr_element_t *my_element = ptr_get_new_element(ifg);
+ my_element->content_first.irn = my_irn;
+ my_element->content_second.irn = NULL;
+ my_element->kind = 8889;
+ last_element.element = my_element;
+ ifg->curr_element = my_element;
+ }
+ }
+ }
+ }
+ bitset_free(my_live);
+ bitset_remv_irn(live, irn);