+init_loop_tree_node (struct ira_loop_tree_node *node, int loop_num)
+{
+ int max_regno = max_reg_num ();
+
+ node->regno_allocno_map
+ = (ira_allocno_t *) ira_allocate (sizeof (ira_allocno_t) * max_regno);
+ memset (node->regno_allocno_map, 0, sizeof (ira_allocno_t) * max_regno);
+ memset (node->reg_pressure, 0, sizeof (node->reg_pressure));
+ node->all_allocnos = ira_allocate_bitmap ();
+ node->modified_regnos = ira_allocate_bitmap ();
+ node->border_allocnos = ira_allocate_bitmap ();
+ node->local_copies = ira_allocate_bitmap ();
+ node->loop_num = loop_num;
+ node->children = NULL;
+ node->subloops = NULL;
+}
+
+
+/* The following function allocates the loop tree nodes. If
+ CURRENT_LOOPS is NULL, the nodes corresponding to the loops (except
+ the root which corresponds the all function) will be not allocated
+ but nodes will still be allocated for basic blocks. */
+static void
+create_loop_tree_nodes (void)