On 22/09/16 15:39, Alexander Monakov wrote:
On Thu, 22 Sep 2016, Kyrill Tkachov wrote:
Sorry no, the problem is HARD_FRAME_POINTER_REGNUM that is defined as:
#define HARD_FRAME_POINTER_REGNUM \
(TARGET_ARM \
? ARM_HARD_FRAME_POINTER_REGNUM \
: THUMB_HARD_FRAME_POINTER_REGNUM)
where ARM_HARD_FRAME_POINTER_REGNUM is 11 and THUMB_HARD_FRAME_POINTER_REGNUM
is 7 so Bernd's new warning triggers whenever HARD_FRAME_POINTER_REGNUM is
used as a boolean like it is in sel-sched.c and regrename.c
I don't follow. The macro used as a boolean in places changed by your patch is
H_F_P_IS_FRAME_POINTER, not H_F_P_REGNUM.
Am I missing something?
I'm following Bernd's proposed change from:
https://gcc.gnu.org/ml/gcc-patches/2016-09/msg01330.html
that includes removing an extra conditional involving:
HARD_FRAME_POINTER_IS_FRAME_POINTER .
I agree the ChangeLog entry should be better. I'm not very familiar with that
code, so I
left it generic would something like this be more appropriate?
* regrename.c (rename_chains): Always add hard frame pointer to unavailable
set when frame pointer is needed.
Kyrill
Thanks.
Alexander