PATCH for review for mainline.

Kenneth Zadeck zadeck@naturalbridge.com
Mon Jan 16 20:00:00 GMT 2006


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.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: storagefix1b.diff
Type: text/x-patch
Size: 16382 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20060116/0a7bac58/attachment.bin>


More information about the Gcc-patches mailing list