diff options
Diffstat (limited to 'gcc/dse.c')
-rw-r--r-- | gcc/dse.c | 56 |
1 files changed, 21 insertions, 35 deletions
diff --git a/gcc/dse.c b/gcc/dse.c index b65a72b90d0..71d34620110 100644 --- a/gcc/dse.c +++ b/gcc/dse.c @@ -3156,43 +3156,30 @@ dse_step6 (bool global_done) group_info_t group; basic_block bb; - if (global_done) - { - for (i = 0; VEC_iterate (group_info_t, rtx_group_vec, i, group); i++) - { - free (group->offset_map_n); - free (group->offset_map_p); - BITMAP_FREE (group->store1_n); - BITMAP_FREE (group->store1_p); - BITMAP_FREE (group->store2_n); - BITMAP_FREE (group->store2_p); - BITMAP_FREE (group->group_kill); - } - - FOR_ALL_BB (bb) - { - bb_info_t bb_info = bb_table[bb->index]; - BITMAP_FREE (bb_info->gen); - if (bb_info->kill) - BITMAP_FREE (bb_info->kill); - if (bb_info->in) - BITMAP_FREE (bb_info->in); - if (bb_info->out) - BITMAP_FREE (bb_info->out); - } - } - else + for (i = 0; VEC_iterate (group_info_t, rtx_group_vec, i, group); i++) { - for (i = 0; VEC_iterate (group_info_t, rtx_group_vec, i, group); i++) - { - BITMAP_FREE (group->store1_n); - BITMAP_FREE (group->store1_p); - BITMAP_FREE (group->store2_n); - BITMAP_FREE (group->store2_p); - BITMAP_FREE (group->group_kill); - } + free (group->offset_map_n); + free (group->offset_map_p); + BITMAP_FREE (group->store1_n); + BITMAP_FREE (group->store1_p); + BITMAP_FREE (group->store2_n); + BITMAP_FREE (group->store2_p); + BITMAP_FREE (group->group_kill); } + if (global_done) + FOR_ALL_BB (bb) + { + bb_info_t bb_info = bb_table[bb->index]; + BITMAP_FREE (bb_info->gen); + if (bb_info->kill) + BITMAP_FREE (bb_info->kill); + if (bb_info->in) + BITMAP_FREE (bb_info->in); + if (bb_info->out) + BITMAP_FREE (bb_info->out); + } + if (clear_alias_sets) { BITMAP_FREE (clear_alias_sets); @@ -3217,7 +3204,6 @@ dse_step6 (bool global_done) } - /* ------------------------------------------------------------------------- DSE ------------------------------------------------------------------------- */ |