This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PING: [PATCH] Add SUBREG_REG_P predicate and change REG_SUBREG_P to be global

On Tue, 23 Jun 2009, Olivier Hainque wrote:

> Hello,
> Eventhough I'm not maintainer of the involved area, I'd like to
> voice an opinion here:
> +/* Predicate yielding nonzero iff X is a subreg of a register.  */
> +#define SUBREG_REG_P(X) \
> +
> +/* Predicate yielding nonzero iff X is a register or subreg of a register.  */
> +#define REG_SUBREG_P(X) \
> +   (REG_P (X) || SUBREG_REG_P(X))
> > 	* caller-save.c: Use REG_SUBREG_P and SUBREG_REG_P where applicable.
> In general, I think the introduction of predicates for common patterns
> is a good thing, so I like the idea/intent of the suggested patch.
> Now, IMVHO, having two different predicates with so similar names is a
> potential source of confusion and mistakes, for both code readers and
> code writers.
> If we're going the extra predicate way as suggested, could we please
> take the opportunity to introduce slightly more descriptive names, for
> I think the disambiguation-hence-mistake-avoidance is well worth
> having slightly longer names to type and read. In this particular
> case, I'd actually rather not have a second predicate instead of
> one with so similar a name.

I think that in this case the code is way easier to read if you not
have to grok all these new predicates.  What is so hard about

  SUBREG_P (reg)
  && REG_P (SUBREG_REG (reg))


The two names are indeed somewhat confusing.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]