[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