------- Comment #52 from seongbae dot park at gmail dot com  2008-01-17 22:31 
-------
Subject: Re:  [4.3 regression] bad interaction between DF and SJLJ exceptions

I just talked to Kenny on the phone, and my suggestion is wrong
since it changes the return value - doing my naive suggestion
would lead to infinite loop, as the transfer function will almost always
return true, even when the out set didn't change.
Can you add a comment to that effect there ?
Also please add a comment above df_live_scratch definition
that this is an optimization to reduce memory allocation overhead
for the scratch.

Can you explain why the hunk in df_live_bb_local_compute() is correct ?
As this seems to change what DF_REF_AT_TOP means for artificial defs...

Seongbae

On Jan 17, 2008 1:31 PM, Seongbae Park (¹Ú¼º¹è, ÚÓà÷ÛÆ)
<[EMAIL PROTECTED]> wrote:
> In df_live_transfer_function:
>
> Doesn't look like we need df_live_scratch - can't we do:
>
> bitmap_and (out, gen, bb_lr_info->out);
> bitmap_and_into (in, bb_lr_info->in);
> return bitmap_ior_and_compl_into (out, in, kill);
>
> ?
>
> Seongbae
>
>
> On Jan 17, 2008 1:05 PM, Kenneth Zadeck <[EMAIL PROTECTED]> wrote:
> > 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  <[EMAIL PROTECTED]>
> >         Steven Bosscher  <[EMAIL PROTECTED]>
> >
> >     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.
> >
> >
>
>
>
> --
> #pragma ident "Seongbae Park, compiler, http://seongbae.blogspot.com";
>


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34400

Reply via email to