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.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.
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 (®_rename_p->unavailable_hard_regs, Pmode, FRAME_POINTER_REGNUM); if (!HARD_FRAME_POINTER_IS_FRAME_POINTER) add_to_hard_reg_set (®_rename_p->unavailable_hard_regs, Pmode, HARD_FRAME_POINTER_REGNUM); } also here maybe remove the if (!...) ? Bernd.