let insert_loop_node env loop_head loop_kind =
let n_loop = add_node env loop_kind in
let mv_pred_edge e =
add_edge env (edge_src e) (edge_type e) n_loop;
remove_edge env e
in iter_pred_e mv_pred_edge env loop_head;
add_edge env n_loop Enone loop_head;
n_loop