On 09/22/16 15:26, Kyrill Tkachov wrote:
> Hi all,
> In the the interest of fixing arm bootstrap here are the two blocking
> and the changes proposed for them.
> I'm not familiar enough with regrename or sel-sched to make a call on
> 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.
> 2016-09-22 Kyrylo Tkachov <kyrylo.tkac...@arm.com>
> Bernd Edlinger <bernd.edlin...@hotmail.de>
> Bernd Schmidt <bschm...@redhat.com>
> * regrename.c (rename_chains): Avoid using HARD_FRAME_POINTER_REGNUM
> in a boolean context.
> * sel-sched.c (mark_unavailable_hard_regs): Likewise.
@@ -1183,10 +1183,8 @@ mark_unavailable_hard_regs (def_t def, struct
frame pointer, or we could not discover its class. */
- || (!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))
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.
also here maybe remove the if (!...) ?