aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcse.c
diff options
context:
space:
mode:
authorTrevor Saunders <tbsaunde@tbsaunde.org>2021-06-12 19:36:38 -0400
committerTrevor Saunders <tbsaunde@tbsaunde.org>2021-06-17 04:43:28 -0400
commit53c55d3204a69c4cce4cc5a982c42cec91178346 (patch)
tree7dd382841cab32c6800d475aa17e5f11fdf31bc4 /gcc/gcse.c
parent4541b5ec16178a1954066c54cd9220b7c8f74309 (diff)
downloadgcc-53c55d3204a69c4cce4cc5a982c42cec91178346.zip
gcc-53c55d3204a69c4cce4cc5a982c42cec91178346.tar.gz
gcc-53c55d3204a69c4cce4cc5a982c42cec91178346.tar.bz2
return auto_vec from more dominance functions
This ensures the vector gets cleaned up by the caller when appropriate. Signed-off-by: Trevor Saunders <tbsaunde@tbsaunde.org> gcc/ChangeLog: * dominance.c (get_dominated_to_depth): Return auto_vec<basic_block>. * dominance.h (get_dominated_to_depth): Likewise. (get_all_dominated_blocks): Likewise. * cfgcleanup.c (delete_unreachable_blocks): Adjust. * gcse.c (hoist_code): Likewise. * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise. * tree-parloops.c (oacc_entry_exit_ok): Likewise. * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise. * tree-ssa-phiprop.c (pass_phiprop::execute): Likewise.
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r--gcc/gcse.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 9114f30..ecf7e51 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -3050,9 +3050,7 @@ static int
hoist_code (void)
{
basic_block bb, dominated;
- vec<basic_block> dom_tree_walk;
unsigned int dom_tree_walk_index;
- vec<basic_block> domby;
unsigned int i, j, k;
struct gcse_expr **index_map;
struct gcse_expr *expr;
@@ -3106,15 +3104,16 @@ hoist_code (void)
if (flag_ira_hoist_pressure)
hoisted_bbs = BITMAP_ALLOC (NULL);
- dom_tree_walk = get_all_dominated_blocks (CDI_DOMINATORS,
- ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb);
+ auto_vec<basic_block> dom_tree_walk
+ = get_all_dominated_blocks (CDI_DOMINATORS,
+ ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb);
/* Walk over each basic block looking for potentially hoistable
expressions, nothing gets hoisted from the entry block. */
FOR_EACH_VEC_ELT (dom_tree_walk, dom_tree_walk_index, bb)
{
- domby = get_dominated_to_depth (CDI_DOMINATORS, bb,
- param_max_hoist_depth);
+ auto_vec<basic_block> domby
+ = get_dominated_to_depth (CDI_DOMINATORS, bb, param_max_hoist_depth);
if (domby.length () == 0)
continue;
@@ -3315,10 +3314,8 @@ hoist_code (void)
bitmap_clear (from_bbs);
}
}
- domby.release ();
}
- dom_tree_walk.release ();
BITMAP_FREE (from_bbs);
if (flag_ira_hoist_pressure)
BITMAP_FREE (hoisted_bbs);