diff mbox

breakage with "[PATCH 1/6] Add FOR_EACH_INSN{_INFO}_{DEFS,USES,EQ_USES}"

Message ID mvmwqch1ds1.fsf@hawking.suse.de
State New
Headers show

Commit Message

Andreas Schwab June 16, 2014, 8:04 a.m. UTC
Hans-Peter Nilsson <hp@bitrange.com> writes:

> On Sun, 15 Jun 2014, Hans-Peter Nilsson wrote:
>
>> On Sun, 15 Jun 2014, Hans-Peter Nilsson wrote:
>> > On Sun, 15 Jun 2014, Steven Bosscher wrote:
>> > > Can you please try:
>> > >
>> > > [...]
>> >
>> > Thanks.  Looks pretty obvious.  I was heading for the door with
>> > just enough time to report the issue, so I didn't actually look
>> > at the code before.  I'll commit this on your behalf once build
>> > has passed the point of failure.
>>
>> ...which includes not just compiling auto-inc-dec.c but also
>> compiling e.g. libgcc with the compiled compiler.  No such luck,
>> segv in that function (must be from Richard's code, not from the
>> patch as no dumps are output at that time).  Bah.
>
> Ok, I'm out; I don't know why the insn_info is invalid here.
> Hopefully obvious to you or Richard.  PR61516 for this.

Please try this:


Andreas.

Comments

Ramana Radhakrishnan June 16, 2014, 8:29 a.m. UTC | #1
On Mon, Jun 16, 2014 at 9:04 AM, Andreas Schwab <schwab@suse.de> wrote:
> Hans-Peter Nilsson <hp@bitrange.com> writes:
>
>> On Sun, 15 Jun 2014, Hans-Peter Nilsson wrote:
>>
>>> On Sun, 15 Jun 2014, Hans-Peter Nilsson wrote:
>>> > On Sun, 15 Jun 2014, Steven Bosscher wrote:
>>> > > Can you please try:
>>> > >
>>> > > [...]
>>> >
>>> > Thanks.  Looks pretty obvious.  I was heading for the door with
>>> > just enough time to report the issue, so I didn't actually look
>>> > at the code before.  I'll commit this on your behalf once build
>>> > has passed the point of failure.
>>>
>>> ...which includes not just compiling auto-inc-dec.c but also
>>> compiling e.g. libgcc with the compiled compiler.  No such luck,
>>> segv in that function (must be from Richard's code, not from the
>>> patch as no dumps are output at that time).  Bah.
>>
>> Ok, I'm out; I don't know why the insn_info is invalid here.
>> Hopefully obvious to you or Richard.  PR61516 for this.
>
> Please try this:
>
> diff --git a/gcc/auto-inc-dec.c b/gcc/auto-inc-dec.c
> index 64a3706..d84e097 100644
> --- a/gcc/auto-inc-dec.c
> +++ b/gcc/auto-inc-dec.c
> @@ -1341,6 +1341,7 @@ merge_in_block (int max_reg, basic_block bb)
>
>    FOR_BB_INSNS_REVERSE_SAFE (bb, insn, curr)
>      {
> +      unsigned int uid = INSN_UID (insn);
>        df_insn_info *insn_info = DF_INSN_INFO_GET (insn);
>        bool insn_is_add_or_inc = true;
>
> @@ -1417,7 +1418,7 @@ merge_in_block (int max_reg, basic_block bb)
>
>        /* If the inc insn was merged with a mem, the inc insn is gone
>          and there is noting to update.  */
> -      if (insn_info)
> +      if (DF_INSN_UID_GET (uid))
>         {
>           df_ref def, use;

Doesn't appear to help on arm-none-linux-gnueabihf where I tried
applying a slight variant of this after the latest fixups for the
auto-inc-dec breakage.

I've gone through all the stages of breakage on this on my
arm-none-linux-gnueabihf auto-tester too.

regards
Ramana

>
>
> Andreas.
>
> --
> Andreas Schwab, SUSE Labs, schwab@suse.de
> GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
> "And now for something completely different."
diff mbox

Patch

diff --git a/gcc/auto-inc-dec.c b/gcc/auto-inc-dec.c
index 64a3706..d84e097 100644
--- a/gcc/auto-inc-dec.c
+++ b/gcc/auto-inc-dec.c
@@ -1341,6 +1341,7 @@  merge_in_block (int max_reg, basic_block bb)
 
   FOR_BB_INSNS_REVERSE_SAFE (bb, insn, curr)
     {
+      unsigned int uid = INSN_UID (insn);
       df_insn_info *insn_info = DF_INSN_INFO_GET (insn);
       bool insn_is_add_or_inc = true;
 
@@ -1417,7 +1418,7 @@  merge_in_block (int max_reg, basic_block bb)
 
       /* If the inc insn was merged with a mem, the inc insn is gone
 	 and there is noting to update.  */
-      if (insn_info)
+      if (DF_INSN_UID_GET (uid))
 	{
 	  df_ref def, use;