diff options
author | Trevor Saunders <tbsaunde@tbsaunde.org> | 2021-06-12 19:36:38 -0400 |
---|---|---|
committer | Trevor Saunders <tbsaunde@tbsaunde.org> | 2021-06-17 04:43:28 -0400 |
commit | 53c55d3204a69c4cce4cc5a982c42cec91178346 (patch) | |
tree | 7dd382841cab32c6800d475aa17e5f11fdf31bc4 /gcc/gcse.c | |
parent | 4541b5ec16178a1954066c54cd9220b7c8f74309 (diff) | |
download | gcc-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.c | 13 |
1 files changed, 5 insertions, 8 deletions
@@ -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); |