On Sat, 4 May 2019, Richard Sandiford wrote: > Richard Biener <rguent...@suse.de> writes: > > On Fri, 3 May 2019, Richard Biener wrote: > > > >> > >> I am testing the following patch to remove the code determining > >> the target virtual operand to walk to and instead compute it > >> based on the immediate dominator which we will reach anyways > >> (or a dominating block) during maybe_skip_until. > >> > >> More simplifying might be possible but I'm trying to keep the > >> patch small and suitable for backporting up to the GCC 8 branch > >> where this regressed. > >> > >> Note this will handle even more CFG shapes now and seems to > >> expose some uninit warnings in dwarf2out.c (at least). > > > > I can't seem to find an initializer that would "trap" on use > > so I'm going to do > > > > Index: gcc/dwarf2out.c > > =================================================================== > > --- gcc/dwarf2out.c (revision 270849) > > +++ gcc/dwarf2out.c (working copy) > > @@ -15461,7 +15461,7 @@ mem_loc_descriptor (rtx rtl, machine_mod > > if (mode != GET_MODE (rtl) && GET_MODE (rtl) != VOIDmode) > > return NULL; > > > > - scalar_int_mode int_mode, inner_mode, op1_mode; > > + scalar_int_mode int_mode = SImode, inner_mode, op1_mode; > > switch (GET_CODE (rtl)) > > { > > case POST_INC: > > > > unless somebody comes up with something clever over the weekend... > > Nothing clever, but something rare like BImode is probably safer than > SImode, in case doing this masks real "uninitialised" uses in future.
Ick, and I forgot to install this hunk when I committed it this morning. Thus fixed as obvious now, with BImode. Richard.