------- Comment #22 from zadeck at naturalbridge dot com 2007-06-30 17:24 ------- Subject: Re: [4.3 Regression] MIPS: FAIL in gcc.dg/cleanup-[8|9|10|11].c
richard at codesourcery dot com wrote: > ------- Comment #21 from richard at codesourcery dot com 2007-06-30 12:26 > ------- > Subject: Re: [4.3 Regression] MIPS: FAIL in gcc.dg/cleanup-[8|9|10|11].c > > Richard Sandiford <[EMAIL PROTECTED]> writes: > >> Kenneth Zadeck <[EMAIL PROTECTED]> writes: >> >>> 2007-06-23 Kenneth Zadeck <[EMAIL PROTECTED]> >>> >>> PR middle-end/32437 >>> *dce.c (deletable_insn_p): Add extra parameter and recurse if insn >>> is a PARALLEL. >>> (prescan_insns_for_dce): Add extra parameter. >>> >> Kenny found that this patch introduced problems on x86 (I think it was) >> because it applied the special handling for bare CLOBBERs to those >> inside PARALLELs as well. We don't want that; bare USEs and CLOBBERs >> are special DF markers, but USEs and CLOBBERs inside PARALLELs are parts >> of asms or define_insns. >> >> Kenny pre-approved the patch below. Bootstrapped & regression-tested >> on x86_64-linux-gnu. Applied to mainline. >> > > This patch apparently caused 32475 to resurface, so I reverted it. > > Richard > > > The comment #3 of this bug is mostly right, the part that pinskia got wrong is the fact that it is the dce subpass of dse that is deleting the insn. I do not see any obvious reason that this insn should not be deleted except that the insn is marked as frame related. Given that dse retains /f insns, I guess that that is what is needed here. Iant, is this correct. If so, i will restore richards code but add a test for frame_relatedness. Kenny -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32437