-/* Returns the number of inner loops */
-size_t (get_loop_n_sons)(const ir_loop *loop)
-{
- return _get_loop_n_sons(loop);
-}
-
-/* Returns the pos`th loop_node-child *
- * TODO: This method isn`t very efficient ! *
- * Returns NULL if there isn`t a pos`th loop_node */
-ir_loop *get_loop_son(ir_loop *loop, size_t pos)
-{
- size_t child_nr = 0;
- size_t loop_nr = 0;
-
- assert(loop && loop->kind == k_ir_loop);
- for (child_nr = 0; child_nr < ARR_LEN(loop->children); ++child_nr) {
- if (*(loop->children[child_nr].kind) != k_ir_loop)
- continue;
- if (loop_nr == pos)
- return loop->children[child_nr].son;
- loop_nr++;
- }
- return NULL;
-}
-
-/* Returns the number of nodes in the loop */
-size_t get_loop_n_nodes(const ir_loop *loop)
-{
- assert(loop);
- assert(loop->kind == k_ir_loop);
- return loop->n_nodes;
-}
-
-/* Returns the pos'th ir_node-child *
- * TODO: This method isn't very efficient ! *
- * Returns NULL if there isn't a pos'th ir_node */
-ir_node *get_loop_node(const ir_loop *loop, size_t pos)
-{
- size_t node_nr = 0;
- size_t child_nr;
-
- assert(loop && loop->kind == k_ir_loop);
- assert(pos < get_loop_n_nodes(loop));
-
- for (child_nr = 0; child_nr < ARR_LEN(loop->children); ++child_nr) {
- if (*(loop->children[child_nr].kind) != k_ir_node)
- continue;
- if (node_nr == pos)
- return loop -> children[child_nr].node;
- node_nr++;
- }
- panic("no child at pos found");
-}
-