PATCH for review for mainline.

Kenneth Zadeck zadeck@naturalbridge.com
Tue Jan 17 04:14:00 GMT 2006


Kenneth Zadeck wrote:
> This fixes three interrelated storage management issues with the new 
> df code.
>
> 1) The scanning information was not being properly cleaned out when 
> the set of blocks to process was being changed.
> 2) The test was wrong for resizing one of the datastructures for the 
> rd and ru problems. 3) The storage freeing code for all of the 
> problems would cause a lot of problems if df_analyze was actually 
> never called before calling df_finish for the instance of df.
> The second problem caused a failure for steven bosscher with the loop 
> invariant code on the dataflow branch.  This patch will be committed 
> there shortly.
>
> This code has been bootstrapped and regression tested on 
> i686-pc-linux-gnu.
>
> Kenny
>
> 2005-01-16  Kenneth Zadeck <zadeck@naturalbridge.com>
>
>    * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
>    be able to clean out basic block when not necessary.
>    (df_scan_free): Fixed to properly delete information if df is
>    unused before calling df_finish.
>    (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
>    df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
>    or comment typos.
>    (df_bb_refs_delete): New function.
>    (df_refs_delete): Moved per block code to df_bb_refs_delete.
>    * df-core.c (df_set_blocks): Added code to properly clean out
>    unused blocks if they are not part of the blocks to consider.
>    (df_compact_blocks): Added basic block parameter to free_bb_fun to
>    be able to clean out basic block when not necessary
>    * df.h (df_free_bb_function): Ditto.
>    (df_bb_refs_delete): New function.    * df-problems.c 
> (df_ru_free_bb_info, df_rd_set_bb_info, df_lr_set_bb_info,
>    df_ur_free_bb_info, df_urec_free_bb_info):Added basic block
>    parameter to be able to clean out basic block when not necessary.
>    (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
>    (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
>    Fixed to properly delete information if df is unused before
>    calling df_finish.
>
Further testing on the dataflow branch yielded a defect with this patch 
which has been fixed in the enclosed patch.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: storagefix2b.diff
Type: text/x-patch
Size: 16492 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20060117/5c701d47/attachment.bin>


More information about the Gcc-patches mailing list