[dataflow]: PATCH COMMITTED to fix problems with dce.

Kenneth Zadeck zadeck@naturalbridge.com
Wed May 16 13:36:00 GMT 2007


This patch fixes a quality and a correctness regression in dce.  It also
upgrades some dumping and monitoring info.

The two dce regressions are:

1) RTX_FRAME_RELATED_P insns were being deleted if they looked to be
dead.  This messed up some exception processing.
2) The live_out set was not being cleared before being recomputed during
dce.  Since
confluence functions can only add bits and dce makes changes that only
delete bits, this was inhibiting the non local effects of doing dce. 

This patch has been bootstrapped and regression tested on x86-64,
x86-32, ppc, and ia-64.  The regressions fixed were in libffi on ppc,
but the failure would likely occur on other platforms. 

Kenny

2007-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>

    * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
    regstat_compute_calls_crossed): Added time variable TV_REG_STATS.
    * timevar.def (TV_REG_STATS): Added.
    (TV_DF_RI): Deleted.
    * df-problems.c (df_print_bb_index): Added identifer for eh blocks.
    * dce.c (deletable_insn_p): Added code to not delete
    RTX_FRAME_RELATED_P insns.
    (dce_process_block): Removed insns_deleted and added code to reset
    live set before confluence function.  
    (rest_of_handle_fast_dce): Added code to turn off df's version of
dce if
    flag_dce is not set and added DF_NO_INSN_RESCAN to flags that are
cleared.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: dce6.diff
Type: text/x-patch
Size: 6653 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070516/b1efbb9e/attachment.bin>


More information about the Gcc-patches mailing list