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