On Fri, Oct 9, 2015 at 9:33 AM, Alexandre Oliva <aol...@redhat.com> wrote: > On Oct 9, 2015, Alexandre Oliva <aol...@redhat.com> wrote: > >> This fixes fallout from the PR64164 expander revamp. > >> Uroš kindly tested with an alpha-linux-gnu regstrap. > > The one regression he mentioned from that run was gcc.dg/pr43300.c. The > vector parameter there is handled by the emit_block_move case of > assign_parms_setup_block. Alas, emit_block_move marks the decl as > addressable, which causes the subsequent is_gimple_reg test in > set_parm_rtl to return false. This causes us to call set_rtl with the > parm decl, instead of its default def, and the latter would be required > to store the RTL in the partition holding the default def. > > The good news it that we don't really need to call is_gimple_reg there, > though; testing whether there is a default def in place is enough, and > ssa_default_def will find the default def in spite of the parm's no > longer passing is_gimple_reg, and it won't complain if given a decl that > was never a gimple reg. > > So, I'm dropping the test. Regstrapped on x86_64-linux-gnu and > i686-linux-gnu. Ok to install?
Ok. Note that I think emit_block_move shouldn't mess with the addressable flag. Thanks, Richard. > > [PR67891] don't test is_gimple_reg after parm expansion > > From: Alexandre Oliva <aol...@redhat.com> > > for gcc/ChangeLog > > PR middle-end/67891 > * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test. > --- > gcc/cfgexpand.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c > index 58e55d2..eaad859 100644 > --- a/gcc/cfgexpand.c > +++ b/gcc/cfgexpand.c > @@ -1243,9 +1243,6 @@ set_parm_rtl (tree parm, rtx x) > record_alignment_for_reg_var (align); > } > > - if (!is_gimple_reg (parm)) > - return set_rtl (parm, x); > - > tree ssa = ssa_default_def (cfun, parm); > if (!ssa) > return set_rtl (parm, x); > > > -- > Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ > You must be the change you wish to see in the world. -- Gandhi > Be Free! -- http://FSFLA.org/ FSF Latin America board member > Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer