diff mbox

[PR64164] drop copyrename, integrate into expand

Message ID orr3pkwsji.fsf@livre.home
State New
Headers show

Commit Message

Alexandre Oliva June 9, 2015, 8:11 p.m. UTC
On Jun  9, 2015, Alexandre Oliva <aoliva@redhat.com> wrote:

> On Jun  9, 2015, David Edelsohn <dje.gcc@gmail.com> wrote:
>> This also broke bootstrap on PPC64 LE Linux with the same error.

> Thanks for your reports.  I'm looking into the problem.

> I'd appreciate a preprocessed testcase from either of you to confirm the
> fix, if not to help debug it.

The first potential source for this problem that jumped at me would be
silenced with this change:


but I suspect there might be other similar issues lurking in function.c
after my attempt to turn parm assignment upside down ;-)

(namely, it used to assume it could pick stack slots and pseudos in a
whim, but after this change it must give way to out-of-SSA's partition
assignments.)

I'll look into cross-building some embedded targets and see if any
further issues surface.

Comments

Jakub Jelinek June 9, 2015, 8:25 p.m. UTC | #1
On Tue, Jun 09, 2015 at 05:11:45PM -0300, Alexandre Oliva wrote:
> On Jun  9, 2015, Alexandre Oliva <aoliva@redhat.com> wrote:
> 
> > On Jun  9, 2015, David Edelsohn <dje.gcc@gmail.com> wrote:
> >> This also broke bootstrap on PPC64 LE Linux with the same error.
> 
> > Thanks for your reports.  I'm looking into the problem.
> 
> > I'd appreciate a preprocessed testcase from either of you to confirm the
> > fix, if not to help debug it.
> 
> The first potential source for this problem that jumped at me would be
> silenced with this change:
> 
> diff --git a/gcc/function.c b/gcc/function.c
> index 8bcc352..9201ed9 100644
> --- a/gcc/function.c
> +++ b/gcc/function.c
> @@ -2974,7 +2974,8 @@ assign_parm_setup_block (struct assign_parm_data_all *all,
>  	stack_parm = copy_rtx (stack_parm);
>        if (GET_MODE_SIZE (GET_MODE (entry_parm)) == size)
>  	PUT_MODE (stack_parm, GET_MODE (entry_parm));
> -      set_mem_attributes (stack_parm, parm, 1);
> +      if (GET_CODE (stack_parm) == MEM)

FYI, this is preferrably if (MEM_P (stack_parm)) these days.

> +	set_mem_attributes (stack_parm, parm, 1);
>      }

	Jakub
Eric Botcazou June 9, 2015, 9:27 p.m. UTC | #2
> I'll look into cross-building some embedded targets and see if any
> further issues surface.

SPARC is also broken, see my message and the tescase under the PR.
David Edelsohn June 9, 2015, 9:36 p.m. UTC | #3
Alex, I sent you a pre-processed file off-list.  You could try
bootstrapping on PPC64 on the GCC Compile Farm.

The SPARC failure reports a different error than PPC and ARM.  The PPC
and ARM failures are the same message, but seem to be on different
files.

After the breakage from Aldy's patch all weekend, this failure is very
frustrating.  If this is not fixed within 24 hours, your patch must be
reverted.  This patch clearly should have been tested on more
architectures than x86 before being approved and merged.

Thanks, David


On Tue, Jun 9, 2015 at 5:27 PM, Eric Botcazou <ebotcazou@adacore.com> wrote:
>> I'll look into cross-building some embedded targets and see if any
>> further issues surface.
>
> SPARC is also broken, see my message and the tescase under the PR.
>
> --
> Eric Botcazou
diff mbox

Patch

diff --git a/gcc/function.c b/gcc/function.c
index 8bcc352..9201ed9 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -2974,7 +2974,8 @@  assign_parm_setup_block (struct assign_parm_data_all *all,
 	stack_parm = copy_rtx (stack_parm);
       if (GET_MODE_SIZE (GET_MODE (entry_parm)) == size)
 	PUT_MODE (stack_parm, GET_MODE (entry_parm));
-      set_mem_attributes (stack_parm, parm, 1);
+      if (GET_CODE (stack_parm) == MEM)
+	set_mem_attributes (stack_parm, parm, 1);
     }
 
   /* If a BLKmode arrives in registers, copy it to a stack slot.  Handle