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? [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