------- Comment #53 from zadeck at naturalbridge dot com 2008-01-17 22:37 ------- Subject: Re: [4.3 regression] bad interaction between DF and SJLJ exceptions
seongbae dot park at gmail dot com wrote: > ------- 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. > > will do. > 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... > > In the old code we went thru the artificial defs twice, once for the defs at the bottom and once for the defs at the top. This is a waste of time. we only need to go thru them once since, for this problem, the processing is order independent. > 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