diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-02-08 09:09:38 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-02-08 09:09:38 +0000 |
commit | 1032e48dc8189b1acbe98851508d9214951fd3c4 (patch) | |
tree | 7376a6bbad1b83a2ca1875f856aea775280d8bbd /gcc/ira-build.c | |
parent | 8ff30f9a0235ba6746f7d1544bc1474fc422d98b (diff) | |
download | gcc-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.c | 24 |
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", |