From: Richard Biener Date: Thu, 6 Dec 2018 11:32:52 +0000 (+0000) Subject: df-problems.c (df_rd_local_compute): Use bitmap_release. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c0d105c63d97a76ac9847b82cc658b330961182d;p=gcc.git df-problems.c (df_rd_local_compute): Use bitmap_release. 2018-12-06 Richard Biener * df-problems.c (df_rd_local_compute): Use bitmap_release. (df_live_free): Likewise. (df_md_local_compute): Likewise. (df_md_free): Release df_md_scratch bitmap. * loop-invariant.c (calculate_loop_reg_pressure): Use bitmap_release. * sched-deps.c (true_dependency_cache, output_dependency_cache, anti_dependency_cache, control_dependency_cache, spec_dependency_cache): Use bitmap instead of bitmap_head *. * sched-ebb.c (schedule_ebbs_init): Initialize non-GTY dont_calc_deps as bitmap allocated from obstack not GC. (schedule_ebbs_finish): Use bitmap_release. * sched-rgn.c (schedule_insns): Initialize non-GTY not_in_df as bitmap allocated from obstack not GC. Use bitmap_release. * sel-sched.c (_forced_ebb_heads): Remove premature optimization. (sel_region_init): Allocate forced_ebb_heads. (sel_region_finish): Free forced_ebb_heads. From-SVN: r266851 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e52f2f946f6..168929181dd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,24 @@ +2018-12-06 Richard Biener + + * df-problems.c (df_rd_local_compute): Use bitmap_release. + (df_live_free): Likewise. + (df_md_local_compute): Likewise. + (df_md_free): Release df_md_scratch bitmap. + * loop-invariant.c (calculate_loop_reg_pressure): Use + bitmap_release. + * sched-deps.c (true_dependency_cache, output_dependency_cache, + anti_dependency_cache, control_dependency_cache, + spec_dependency_cache): Use bitmap instead of bitmap_head *. + * sched-ebb.c (schedule_ebbs_init): Initialize non-GTY + dont_calc_deps as bitmap allocated from obstack not GC. + (schedule_ebbs_finish): Use bitmap_release. + * sched-rgn.c (schedule_insns): Initialize non-GTY + not_in_df as bitmap allocated from obstack not GC. + Use bitmap_release. + * sel-sched.c (_forced_ebb_heads): Remove premature optimization. + (sel_region_init): Allocate forced_ebb_heads. + (sel_region_finish): Free forced_ebb_heads. + 2018-12-06 Richard Biener * bitmap.c (bitmap_head::crashme): Define. diff --git a/gcc/df-problems.c b/gcc/df-problems.c index 7ccb57c287a..ccab9a96bd7 100644 --- a/gcc/df-problems.c +++ b/gcc/df-problems.c @@ -419,8 +419,8 @@ df_rd_local_compute (bitmap all_blocks) } } - bitmap_clear (&seen_in_block); - bitmap_clear (&seen_in_insn); + bitmap_release (&seen_in_block); + bitmap_release (&seen_in_insn); } @@ -1585,7 +1585,7 @@ df_live_free (void) df_live->block_info_size = 0; free (df_live->block_info); df_live->block_info = NULL; - bitmap_clear (&df_live_scratch); + bitmap_release (&df_live_scratch); bitmap_obstack_release (&problem_data->live_bitmaps); free (problem_data); df_live->problem_data = NULL; @@ -4533,7 +4533,7 @@ df_md_local_compute (bitmap all_blocks) df_md_bb_local_compute (bb_index); } - bitmap_clear (&seen_in_insn); + bitmap_release (&seen_in_insn); frontiers = XNEWVEC (bitmap_head, last_basic_block_for_fn (cfun)); FOR_ALL_BB_FN (bb, cfun) @@ -4649,6 +4649,7 @@ df_md_free (void) struct df_md_problem_data *problem_data = (struct df_md_problem_data *) df_md->problem_data; + bitmap_release (&df_md_scratch); bitmap_obstack_release (&problem_data->md_bitmaps); free (problem_data); df_md->problem_data = NULL; diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c index e3b2eda1695..5bd6fc771ee 100644 --- a/gcc/loop-invariant.c +++ b/gcc/loop-invariant.c @@ -2201,7 +2201,7 @@ calculate_loop_reg_pressure (void) } } } - bitmap_clear (&curr_regs_live); + bitmap_release (&curr_regs_live); if (flag_ira_region == IRA_REGION_MIXED || flag_ira_region == IRA_REGION_ALL) FOR_EACH_LOOP (loop, 0) diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index f89f28269fd..dfdf5cc8895 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -461,11 +461,11 @@ static HARD_REG_SET implicit_reg_pending_uses; has enough entries to represent a dependency on any other insn in the insn chain. All bitmap for true dependencies cache is allocated then the rest two ones are also allocated. */ -static bitmap_head *true_dependency_cache = NULL; -static bitmap_head *output_dependency_cache = NULL; -static bitmap_head *anti_dependency_cache = NULL; -static bitmap_head *control_dependency_cache = NULL; -static bitmap_head *spec_dependency_cache = NULL; +static bitmap true_dependency_cache = NULL; +static bitmap output_dependency_cache = NULL; +static bitmap anti_dependency_cache = NULL; +static bitmap control_dependency_cache = NULL; +static bitmap spec_dependency_cache = NULL; static int cache_size; /* True if we should mark added dependencies as a non-register deps. */ diff --git a/gcc/sched-ebb.c b/gcc/sched-ebb.c index c3be0e33855..49ae2865419 100644 --- a/gcc/sched-ebb.c +++ b/gcc/sched-ebb.c @@ -588,15 +588,14 @@ schedule_ebbs_init (void) compute_bb_for_insn (); /* Initialize DONT_CALC_DEPS and ebb-{start, end} markers. */ - bitmap_initialize (&dont_calc_deps, 0); - bitmap_clear (&dont_calc_deps); + bitmap_initialize (&dont_calc_deps, &bitmap_default_obstack); } /* Perform cleanups after scheduling using schedules_ebbs or schedule_ebb. */ void schedule_ebbs_finish (void) { - bitmap_clear (&dont_calc_deps); + bitmap_release (&dont_calc_deps); /* Reposition the prologue and epilogue notes in case we moved the prologue/epilogue insns. */ diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c index 3c67fccb9b1..ea8dd5c7b76 100644 --- a/gcc/sched-rgn.c +++ b/gcc/sched-rgn.c @@ -3507,8 +3507,7 @@ schedule_insns (void) haifa_sched_init (); sched_rgn_init (reload_completed); - bitmap_initialize (¬_in_df, 0); - bitmap_clear (¬_in_df); + bitmap_initialize (¬_in_df, &bitmap_default_obstack); /* Schedule every region in the subroutine. */ for (rgn = 0; rgn < nr_regions; rgn++) @@ -3517,7 +3516,7 @@ schedule_insns (void) /* Clean up. */ sched_rgn_finish (); - bitmap_clear (¬_in_df); + bitmap_release (¬_in_df); haifa_sched_finish (); } diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c index 824f1ec3403..e57a8f2dcef 100644 --- a/gcc/sel-sched.c +++ b/gcc/sel-sched.c @@ -473,8 +473,7 @@ static int first_emitted_uid; /* Set of basic blocks that are forced to start new ebbs. This is a subset of all the ebb heads. */ -static bitmap_head _forced_ebb_heads; -bitmap_head *forced_ebb_heads = &_forced_ebb_heads; +bitmap forced_ebb_heads; /* Blocks that need to be rescheduled after pipelining. */ bitmap blocks_to_reschedule = NULL; @@ -6947,8 +6946,7 @@ sel_region_init (int rgn) memset (reg_rename_tick, 0, sizeof reg_rename_tick); reg_rename_this_tick = 0; - bitmap_initialize (forced_ebb_heads, 0); - bitmap_clear (forced_ebb_heads); + forced_ebb_heads = BITMAP_ALLOC (NULL); setup_nop_vinsn (); current_copies = BITMAP_ALLOC (NULL); @@ -7290,7 +7288,7 @@ sel_region_finish (bool reset_sched_cycles_p) sel_finish_global_and_expr (); - bitmap_clear (forced_ebb_heads); + BITMAP_FREE (forced_ebb_heads); free_nop_vinsn ();