diff options
author | Richard Biener <rguenther@suse.de> | 2018-12-06 11:32:52 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-12-06 11:32:52 +0000 |
commit | c0d105c63d97a76ac9847b82cc658b330961182d (patch) | |
tree | bbd5798495f8197c79c8198fc04baab67c83d0bf /gcc | |
parent | 1c252ef3cbf964ce6022e5431de7f264a929a100 (diff) | |
download | gcc-c0d105c63d97a76ac9847b82cc658b330961182d.zip gcc-c0d105c63d97a76ac9847b82cc658b330961182d.tar.gz gcc-c0d105c63d97a76ac9847b82cc658b330961182d.tar.bz2 |
df-problems.c (df_rd_local_compute): Use bitmap_release.
2018-12-06 Richard Biener <rguenther@suse.de>
* 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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 21 | ||||
-rw-r--r-- | gcc/df-problems.c | 9 | ||||
-rw-r--r-- | gcc/loop-invariant.c | 2 | ||||
-rw-r--r-- | gcc/sched-deps.c | 10 | ||||
-rw-r--r-- | gcc/sched-ebb.c | 5 | ||||
-rw-r--r-- | gcc/sched-rgn.c | 5 | ||||
-rw-r--r-- | gcc/sel-sched.c | 8 |
7 files changed, 39 insertions, 21 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e52f2f9..1689291 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,26 @@ 2018-12-06 Richard Biener <rguenther@suse.de> + * 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 <rguenther@suse.de> + * bitmap.c (bitmap_head::crashme): Define. * bitmap.h (bitmap_head): Add constexpr default constructor poisoning the obstack member. diff --git a/gcc/df-problems.c b/gcc/df-problems.c index 7ccb57c..ccab9a9 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 e3b2eda1..5bd6fc7 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 f89f282..dfdf5cc 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 c3be0e3..49ae286 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 3c67fcc..ea8dd5c 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 824f1ec..e57a8f2 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 (); |