Re: [PATCH 09/13] use auto_bitmap more with alternate obstacks
On Tue, May 9, 2017 at 10:52 PM,wrote: > From: Trevor Saunders > > gcc/ChangeLog: Ok. > 2017-05-09 Trevor Saunders > > * df-core.c (df_set_blocks): Start using auto_bitmap. > (df_compact_blocks): Likewise. > * df-problems.c (df_rd_confluence_n): Likewise. > * df-scan.c (df_insn_rescan_all): Likewise. > (df_process_deferred_rescans): Likewise. > (df_update_entry_block_defs): Likewise. > (df_update_exit_block_uses): Likewise. > (df_entry_block_bitmap_verify): Likewise. > (df_exit_block_bitmap_verify): Likewise. > (df_scan_verify): Likewise. > * lra-constraints.c (lra_constraints): Likewise. > (undo_optional_reloads): Likewise. > (lra_undo_inheritance): Likewise. > * lra-remat.c (calculate_gen_cands): Likewise. > (do_remat): Likewise. > * lra-spills.c (assign_spill_hard_regs): Likewise. > (spill_pseudos): Likewise. > * tree-ssa-pre.c (bitmap_set_and): Likewise. > (bitmap_set_subtract_values): Likewise. > --- > gcc/df-core.c | 30 +++-- > gcc/df-problems.c | 10 +++--- > gcc/df-scan.c | 93 > --- > gcc/lra-constraints.c | 42 ++- > gcc/lra-remat.c | 43 ++-- > gcc/lra-spills.c | 25 ++ > gcc/tree-ssa-pre.c| 17 -- > 7 files changed, 104 insertions(+), 156 deletions(-) > > diff --git a/gcc/df-core.c b/gcc/df-core.c > index 98787a768c6..1b270d417aa 100644 > --- a/gcc/df-core.c > +++ b/gcc/df-core.c > @@ -497,9 +497,8 @@ df_set_blocks (bitmap blocks) > /* This block is called to change the focus from one subset > to another. */ > int p; > - bitmap_head diff; > - bitmap_initialize (, _bitmap_obstack); > - bitmap_and_compl (, df->blocks_to_analyze, blocks); > + auto_bitmap diff (_bitmap_obstack); > + bitmap_and_compl (diff, df->blocks_to_analyze, blocks); > for (p = 0; p < df->num_problems_defined; p++) > { > struct dataflow *dflow = df->problems_in_order[p]; > @@ -510,7 +509,7 @@ df_set_blocks (bitmap blocks) > bitmap_iterator bi; > unsigned int bb_index; > > - EXECUTE_IF_SET_IN_BITMAP (, 0, bb_index, bi) > + EXECUTE_IF_SET_IN_BITMAP (diff, 0, bb_index, bi) > { > basic_block bb = BASIC_BLOCK_FOR_FN (cfun, bb_index); > if (bb) > @@ -522,8 +521,6 @@ df_set_blocks (bitmap blocks) > } > } > } > - > - bitmap_clear (); > } >else > { > @@ -1652,9 +1649,8 @@ df_compact_blocks (void) >int i, p; >basic_block bb; >void *problem_temps; > - bitmap_head tmp; > > - bitmap_initialize (, _bitmap_obstack); > + auto_bitmap tmp (_bitmap_obstack); >for (p = 0; p < df->num_problems_defined; p++) > { >struct dataflow *dflow = df->problems_in_order[p]; > @@ -1663,17 +1659,17 @@ df_compact_blocks (void) > dflow problem. */ >if (dflow->out_of_date_transfer_functions) > { > - bitmap_copy (, dflow->out_of_date_transfer_functions); > + bitmap_copy (tmp, dflow->out_of_date_transfer_functions); > bitmap_clear (dflow->out_of_date_transfer_functions); > - if (bitmap_bit_p (, ENTRY_BLOCK)) > + if (bitmap_bit_p (tmp, ENTRY_BLOCK)) > bitmap_set_bit (dflow->out_of_date_transfer_functions, > ENTRY_BLOCK); > - if (bitmap_bit_p (, EXIT_BLOCK)) > + if (bitmap_bit_p (tmp, EXIT_BLOCK)) > bitmap_set_bit (dflow->out_of_date_transfer_functions, > EXIT_BLOCK); > > i = NUM_FIXED_BLOCKS; > FOR_EACH_BB_FN (bb, cfun) > { > - if (bitmap_bit_p (, bb->index)) > + if (bitmap_bit_p (tmp, bb->index)) > bitmap_set_bit (dflow->out_of_date_transfer_functions, i); > i++; > } > @@ -1711,23 +1707,21 @@ df_compact_blocks (void) > >if (df->blocks_to_analyze) > { > - if (bitmap_bit_p (, ENTRY_BLOCK)) > + if (bitmap_bit_p (tmp, ENTRY_BLOCK)) > bitmap_set_bit (df->blocks_to_analyze, ENTRY_BLOCK); > - if (bitmap_bit_p (, EXIT_BLOCK)) > + if (bitmap_bit_p (tmp, EXIT_BLOCK)) > bitmap_set_bit (df->blocks_to_analyze, EXIT_BLOCK); > - bitmap_copy (, df->blocks_to_analyze); > + bitmap_copy (tmp, df->blocks_to_analyze); >bitmap_clear (df->blocks_to_analyze); >i = NUM_FIXED_BLOCKS; >FOR_EACH_BB_FN (bb, cfun) > { > - if (bitmap_bit_p (, bb->index)) > + if (bitmap_bit_p (tmp, bb->index)) > bitmap_set_bit (df->blocks_to_analyze, i); >
[PATCH 09/13] use auto_bitmap more with alternate obstacks
From: Trevor Saundersgcc/ChangeLog: 2017-05-09 Trevor Saunders * df-core.c (df_set_blocks): Start using auto_bitmap. (df_compact_blocks): Likewise. * df-problems.c (df_rd_confluence_n): Likewise. * df-scan.c (df_insn_rescan_all): Likewise. (df_process_deferred_rescans): Likewise. (df_update_entry_block_defs): Likewise. (df_update_exit_block_uses): Likewise. (df_entry_block_bitmap_verify): Likewise. (df_exit_block_bitmap_verify): Likewise. (df_scan_verify): Likewise. * lra-constraints.c (lra_constraints): Likewise. (undo_optional_reloads): Likewise. (lra_undo_inheritance): Likewise. * lra-remat.c (calculate_gen_cands): Likewise. (do_remat): Likewise. * lra-spills.c (assign_spill_hard_regs): Likewise. (spill_pseudos): Likewise. * tree-ssa-pre.c (bitmap_set_and): Likewise. (bitmap_set_subtract_values): Likewise. --- gcc/df-core.c | 30 +++-- gcc/df-problems.c | 10 +++--- gcc/df-scan.c | 93 --- gcc/lra-constraints.c | 42 ++- gcc/lra-remat.c | 43 ++-- gcc/lra-spills.c | 25 ++ gcc/tree-ssa-pre.c| 17 -- 7 files changed, 104 insertions(+), 156 deletions(-) diff --git a/gcc/df-core.c b/gcc/df-core.c index 98787a768c6..1b270d417aa 100644 --- a/gcc/df-core.c +++ b/gcc/df-core.c @@ -497,9 +497,8 @@ df_set_blocks (bitmap blocks) /* This block is called to change the focus from one subset to another. */ int p; - bitmap_head diff; - bitmap_initialize (, _bitmap_obstack); - bitmap_and_compl (, df->blocks_to_analyze, blocks); + auto_bitmap diff (_bitmap_obstack); + bitmap_and_compl (diff, df->blocks_to_analyze, blocks); for (p = 0; p < df->num_problems_defined; p++) { struct dataflow *dflow = df->problems_in_order[p]; @@ -510,7 +509,7 @@ df_set_blocks (bitmap blocks) bitmap_iterator bi; unsigned int bb_index; - EXECUTE_IF_SET_IN_BITMAP (, 0, bb_index, bi) + EXECUTE_IF_SET_IN_BITMAP (diff, 0, bb_index, bi) { basic_block bb = BASIC_BLOCK_FOR_FN (cfun, bb_index); if (bb) @@ -522,8 +521,6 @@ df_set_blocks (bitmap blocks) } } } - - bitmap_clear (); } else { @@ -1652,9 +1649,8 @@ df_compact_blocks (void) int i, p; basic_block bb; void *problem_temps; - bitmap_head tmp; - bitmap_initialize (, _bitmap_obstack); + auto_bitmap tmp (_bitmap_obstack); for (p = 0; p < df->num_problems_defined; p++) { struct dataflow *dflow = df->problems_in_order[p]; @@ -1663,17 +1659,17 @@ df_compact_blocks (void) dflow problem. */ if (dflow->out_of_date_transfer_functions) { - bitmap_copy (, dflow->out_of_date_transfer_functions); + bitmap_copy (tmp, dflow->out_of_date_transfer_functions); bitmap_clear (dflow->out_of_date_transfer_functions); - if (bitmap_bit_p (, ENTRY_BLOCK)) + if (bitmap_bit_p (tmp, ENTRY_BLOCK)) bitmap_set_bit (dflow->out_of_date_transfer_functions, ENTRY_BLOCK); - if (bitmap_bit_p (, EXIT_BLOCK)) + if (bitmap_bit_p (tmp, EXIT_BLOCK)) bitmap_set_bit (dflow->out_of_date_transfer_functions, EXIT_BLOCK); i = NUM_FIXED_BLOCKS; FOR_EACH_BB_FN (bb, cfun) { - if (bitmap_bit_p (, bb->index)) + if (bitmap_bit_p (tmp, bb->index)) bitmap_set_bit (dflow->out_of_date_transfer_functions, i); i++; } @@ -1711,23 +1707,21 @@ df_compact_blocks (void) if (df->blocks_to_analyze) { - if (bitmap_bit_p (, ENTRY_BLOCK)) + if (bitmap_bit_p (tmp, ENTRY_BLOCK)) bitmap_set_bit (df->blocks_to_analyze, ENTRY_BLOCK); - if (bitmap_bit_p (, EXIT_BLOCK)) + if (bitmap_bit_p (tmp, EXIT_BLOCK)) bitmap_set_bit (df->blocks_to_analyze, EXIT_BLOCK); - bitmap_copy (, df->blocks_to_analyze); + bitmap_copy (tmp, df->blocks_to_analyze); bitmap_clear (df->blocks_to_analyze); i = NUM_FIXED_BLOCKS; FOR_EACH_BB_FN (bb, cfun) { - if (bitmap_bit_p (, bb->index)) + if (bitmap_bit_p (tmp, bb->index)) bitmap_set_bit (df->blocks_to_analyze, i); i++; } } - bitmap_clear (); - i = NUM_FIXED_BLOCKS; FOR_EACH_BB_FN (bb, cfun) { diff --git a/gcc/df-problems.c b/gcc/df-problems.c index 92323a39d8a..755aecf46df 100644 --- a/gcc/df-problems.c +++ b/gcc/df-problems.c @@ -461,19 +461,17 @@ df_rd_confluence_n (edge e)