[PATCH] remove HARD_FRAME_POINTER_IS_ARG_POINTER macro
Bernd Schmidt
bschmidt@redhat.com
Mon Aug 22 09:25:00 GMT 2016
On 08/20/2016 07:07 PM, tbsaunde+gcc@tbsaunde.org wrote:
> From: Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
>
> Hi,
>
> its kind of silly, and this allows us to remove a few more #ifdefs.
> #if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
> -#if HARD_FRAME_POINTER_IS_ARG_POINTER
> +#if HARD_FRAME_POINTER_REGNUM == ARG_POINTER_REGNUM
> GR_ARG_POINTER = GR_HARD_FRAME_POINTER,
> #else
> GR_ARG_POINTER,
I think this test here is the reason it's needed - arm.h has the only
non-default definition of H_F_P_I_A_P, and there we have a definition
that I think can't be evaluated by the preprocessor:
#define HARD_FRAME_POINTER_REGNUM \
(TARGET_ARM \
? ARM_HARD_FRAME_POINTER_REGNUM \
: THUMB_HARD_FRAME_POINTER_REGNUM)
Note that this is actually documented in one of the pieces removed by
your patch:
@defmac HARD_FRAME_POINTER_IS_ARG_POINTER
Define this to a preprocessor constant that is nonzero if
@code{hard_frame_pointer_rtx} and @code{arg_pointer_rtx} should be the
same. The default definition is @samp{(HARD_FRAME_POINTER_REGNUM ==
ARG_POINTER_REGNUM)}; you only need to define this macro if that
definition is not suitable for use in preprocessor conditionals.
@end defmac
You can probably remove most of the ifdefs without removing this macro.
Bernd
More information about the Gcc-patches
mailing list