public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Bernd Edlinger <bernd.edlinger@hotmail.de>
To: Kyrill Tkachov <kyrylo.tkachov@foss.arm.com>,
	GCC Patches	<gcc-patches@gcc.gnu.org>
Cc: Bernd Schmidt <bschmidt@redhat.com>
Subject: Re: [PATCH][RFC][regrename][sel-sched] Fix arm bootstrap
Date: Thu, 22 Sep 2016 14:34:00 -0000	[thread overview]
Message-ID: <AM4PR0701MB2162D1D7F003C74F5152262CE4C90@AM4PR0701MB2162.eurprd07.prod.outlook.com> (raw)
In-Reply-To: <57E3DBEF.4090700@foss.arm.com>

On 09/22/16 15:26, Kyrill Tkachov wrote:
> Hi all,
>
> In the the interest of fixing arm bootstrap here are the two blocking
> issues
> and the changes proposed for them.
> I'm not familiar enough with regrename or sel-sched to make a call on
> whether
> these are right or not, I just want to keep the ball rolling so we can fix
> arm bootstrap.
>
> These changes allowed arm bootstrap to complete.
> Are they the right way to go?
> If so, I'll do a full bootstrap and test run on aarch64 and x86_64.
>
> Thanks,
> Kyrill
>
> 2016-09-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
>              Bernd Edlinger  <bernd.edlinger@hotmail.de>
>              Bernd Schmidt  <bschmidt@redhat.com>
>
>      * regrename.c (rename_chains): Avoid using HARD_FRAME_POINTER_REGNUM
>      in a boolean context.
>      * sel-sched.c (mark_unavailable_hard_regs): Likewise.

Thanks Kyill,


--- a/gcc/sel-sched.c
+++ b/gcc/sel-sched.c
@@ -1183,10 +1183,8 @@ mark_unavailable_hard_regs (def_t def, struct 
reg_rename *reg_rename_p,
       frame pointer, or we could not discover its class.  */
    if (fixed_regs[regno]
        || global_regs[regno]
-      || (!HARD_FRAME_POINTER_IS_FRAME_POINTER && frame_pointer_needed
+      || (frame_pointer_needed
  	  && regno == HARD_FRAME_POINTER_REGNUM)
-      || (HARD_FRAME_POINTER_REGNUM && frame_pointer_needed
-	  && regno == FRAME_POINTER_REGNUM)
        || (reload_completed && cl == NO_REGS))
      {
        SET_HARD_REG_SET (reg_rename_p->unavailable_hard_regs);

I think, that sel-sched.c would be on the safe side, if it is
staying away from both HARD_FRAME_POINTER and FRAME_POINTER, because
it may apparently also used before reload, where most of the
accesses use FRAME_POINTER.

   if (frame_pointer_needed)
     {
       add_to_hard_reg_set (&reg_rename_p->unavailable_hard_regs,
                            Pmode, FRAME_POINTER_REGNUM);

       if (!HARD_FRAME_POINTER_IS_FRAME_POINTER)
         add_to_hard_reg_set (&reg_rename_p->unavailable_hard_regs,
                              Pmode, HARD_FRAME_POINTER_REGNUM);
     }

also here maybe remove the if (!...) ?



Bernd.

  reply	other threads:[~2016-09-22 14:26 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-22 13:36 Kyrill Tkachov
2016-09-22 14:34 ` Bernd Edlinger [this message]
2016-09-22 14:37 ` Alexander Monakov
2016-09-22 14:39   ` Kyrill Tkachov
2016-09-22 14:52     ` Alexander Monakov
2016-09-22 14:54       ` Kyrill Tkachov
2016-09-22 15:36         ` Alexander Monakov
2016-09-22 15:50           ` Kyrill Tkachov
2016-09-22 15:04     ` Bernd Edlinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AM4PR0701MB2162D1D7F003C74F5152262CE4C90@AM4PR0701MB2162.eurprd07.prod.outlook.com \
    --to=bernd.edlinger@hotmail.de \
    --cc=bschmidt@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=kyrylo.tkachov@foss.arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).