On 08/20/2016 07:07 PM, tbsaunde+...@tbsaunde.org wrote:
From: Trevor Saunders <tbsaunde+...@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

Reply via email to