[Bug middle-end/34400] [4.3 regression] bad interaction between DF and SJLJ exceptions

Kenneth Zadeck zadeck@naturalbridge.com
Thu Jan 17 22:34:00 GMT 2008


This is the second of three patches to fix 34400.  This patch also makes
some progress on 26854 but more work is required that is not going to be
done in 4.3 to fix the problems here. 

This patch uses the output of the df_lr problem to make the df_live
problem converge faster. 
This not only saves time but also space since the size of the df_live
bitmaps never grows and the space of our bitmaps is proportional to the
number of 1 bits.

This has been tested on several platforms and along with the patch just
committed cuts the time on the 34400 problems significantly.  I believe
that this patch also has some modest improvement on bootstrap time, i.e
regular programs.

The change to df_live_reset is a slightly related latent bug fix.

Ok to commit?

Kenny


2008-01-17  Kenneth Zadeck  <zadeck@naturalbridge.com>
        Steven Bosscher  <stevenb.gcc@gmail.com>

    PR rtl-optimization/26854
    PR rtl-optimization/34400
    * df-problems.c (df_live_scratch): New scratch bitmap.
    (df_live_alloc): Allocate df_live_scratch when doing df_live.
    (df_live_reset): Clear the proper bitmaps.
    (df_live_bb_local_compute): Only process the artificial defs once
    since the order is not important.
    (df_live_init): Init the df_live sets only with the variables
    found live by df_lr.
    (df_live_transfer_function): Use the df_lr sets to prune the
    df_live sets as they are being computed.  
    (df_live_free): Free df_live_scratch.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: fastlr.diff
Type: text/x-patch
Size: 3356 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20080117/8de415db/attachment.bin>


More information about the Gcc-patches mailing list