summaryrefslogtreecommitdiff
path: root/gcc/ira-build.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2013-02-08 09:09:38 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2013-02-08 09:09:38 +0000
commit1032e48dc8189b1acbe98851508d9214951fd3c4 (patch)
tree7376a6bbad1b83a2ca1875f856aea775280d8bbd /gcc/ira-build.c
parent8ff30f9a0235ba6746f7d1544bc1474fc422d98b (diff)
downloadgcc-1032e48dc8189b1acbe98851508d9214951fd3c4.tar.gz
2013-02-08 Richard Biener <rguenther@suse.de>
* cfgloop.c (verify_loop_structure): Properly handle a loop exiting to another loop header. * ira-int.h (ira_loops): Remove. * ira.c (ira_loops): Remove. (ira): Use loop_optimizer_init and loop_optimizer_finalize. (do_reload): Use loop_optimizer_finalize. * ira-build.c (create_loop_tree_nodes): Use get_loops and number_of_loops to access the loop tree. (more_one_region_p): Likewise. (finish_loop_tree_nodes): Likewise. (rebuild_regno_allocno_maps): Likewise. (mark_loops_for_removal): Likewise. (mark_all_loops_for_removal): Likewise. (remove_unnecessary_regions): Likewise. (ira_build): Likewise. * ira-emit.c (setup_entered_from_non_parent_p): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195877 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-build.c')
-rw-r--r--gcc/ira-build.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/gcc/ira-build.c b/gcc/ira-build.c
index da19b590141..dd66091a335 100644
--- a/gcc/ira-build.c
+++ b/gcc/ira-build.c
@@ -149,10 +149,10 @@ create_loop_tree_nodes (void)
}
ira_loop_nodes = ((struct ira_loop_tree_node *)
ira_allocate (sizeof (struct ira_loop_tree_node)
- * vec_safe_length (ira_loops.larray)));
- FOR_EACH_VEC_SAFE_ELT (ira_loops.larray, i, loop)
+ * number_of_loops ()));
+ FOR_EACH_VEC_SAFE_ELT (get_loops (), i, loop)
{
- if (loop != ira_loops.tree_root)
+ if (loop_outer (loop) != NULL)
{
ira_loop_nodes[i].regno_allocno_map = NULL;
skip_p = false;
@@ -189,7 +189,7 @@ more_one_region_p (void)
loop_p loop;
if (current_loops != NULL)
- FOR_EACH_VEC_SAFE_ELT (ira_loops.larray, i, loop)
+ FOR_EACH_VEC_SAFE_ELT (get_loops (), i, loop)
if (ira_loop_nodes[i].regno_allocno_map != NULL
&& ira_loop_tree_root != &ira_loop_nodes[i])
return true;
@@ -222,7 +222,7 @@ finish_loop_tree_nodes (void)
if (current_loops == NULL)
finish_loop_tree_node (&ira_loop_nodes[0]);
else
- FOR_EACH_VEC_SAFE_ELT (ira_loops.larray, i, loop)
+ FOR_EACH_VEC_SAFE_ELT (get_loops (), i, loop)
finish_loop_tree_node (&ira_loop_nodes[i]);
ira_free (ira_loop_nodes);
for (i = 0; i < (unsigned int) last_basic_block_before_change; i++)
@@ -378,7 +378,7 @@ rebuild_regno_allocno_maps (void)
ira_assert (current_loops != NULL);
max_regno = max_reg_num ();
- FOR_EACH_VEC_SAFE_ELT (ira_loops.larray, l, loop)
+ FOR_EACH_VEC_SAFE_ELT (get_loops (), l, loop)
if (ira_loop_nodes[l].regno_allocno_map != NULL)
{
ira_free (ira_loop_nodes[l].regno_allocno_map);
@@ -2021,8 +2021,8 @@ mark_loops_for_removal (void)
ira_assert (current_loops != NULL);
sorted_loops
= (ira_loop_tree_node_t *) ira_allocate (sizeof (ira_loop_tree_node_t)
- * vec_safe_length (ira_loops.larray));
- for (n = i = 0; vec_safe_iterate (ira_loops.larray, i, &loop); i++)
+ * number_of_loops ());
+ for (n = i = 0; vec_safe_iterate (get_loops (), i, &loop); i++)
if (ira_loop_nodes[i].regno_allocno_map != NULL)
{
if (ira_loop_nodes[i].parent == NULL)
@@ -2066,7 +2066,7 @@ mark_all_loops_for_removal (void)
loop_p loop;
ira_assert (current_loops != NULL);
- FOR_EACH_VEC_SAFE_ELT (ira_loops.larray, i, loop)
+ FOR_EACH_VEC_SAFE_ELT (get_loops (), i, loop)
if (ira_loop_nodes[i].regno_allocno_map != NULL)
{
if (ira_loop_nodes[i].parent == NULL)
@@ -2376,8 +2376,8 @@ remove_unnecessary_regions (bool all_p)
mark_all_loops_for_removal ();
else
mark_loops_for_removal ();
- children_vec.create(last_basic_block + vec_safe_length(ira_loops.larray));
- removed_loop_vec.create(last_basic_block + vec_safe_length(ira_loops.larray));
+ children_vec.create(last_basic_block + number_of_loops ());
+ removed_loop_vec.create(last_basic_block + number_of_loops ());
remove_uneccesary_loop_nodes_from_loop_tree (ira_loop_tree_root);
children_vec.release ();
if (all_p)
@@ -3258,7 +3258,7 @@ ira_build (void)
}
}
fprintf (ira_dump_file, " regions=%d, blocks=%d, points=%d\n",
- current_loops == NULL ? 1 : vec_safe_length (ira_loops.larray),
+ current_loops == NULL ? 1 : number_of_loops (),
n_basic_blocks, ira_max_point);
fprintf (ira_dump_file,
" allocnos=%d (big %d), copies=%d, conflicts=%d, ranges=%d\n",