Diego Novillo <[EMAIL PROTECTED]> writes:

> > I personally find it kind of baffling to have the same tree code act
> > differently in GENERIC and GIMPLE, a la SWITCH_EXPR.  It seems to add
> > confusion for minimal benefit.  If you are suggesting that the single
> > tree code GOMP_PARALLEL have different operands in GENERIC and GIMPLE,
> > can I suggest that you instead use two different tree coes?
> > 
> That is a fundamental feature of both GENERIC and GIMPLE. GIMPLE
> is a non-strict subset of GENERIC.  Every program in GIMPLE form
> is also in GENERIC form.  The reverse, however, is not true.

Well, sure.

But it seems to me that there is a difference.  PLUS_EXPR always takes
two operands and adds them together.  Given a PLUS_EXPR, you always
where to find the operands, and more or less what they mean.  I don't
find that confusing, although I agree that the operands themselves may
be different in GENERIC and GIMPLE.

SWITCH_EXPR is different.  Sometimes you use SWITCH_BODY, and
sometimes you use SWITCH_LABELS.  How do you know which one to use?
It depends on whether you have GENERIC or GIMPLE.

In particular, this matters for functions like block_may_fallthru,
which are called with both GENERIC and GIMPLE.

> If we did that we would need different codes for every tree code
> (MODIFY_EXPR, PLUS_EXPR, etc).  Similarly, we would need
> different codes when we move from High-GIMPLE into Low-GIMPLE.
> I'm not sure that's worth the effort.  From the point of view of
> analysis and optimizations the differences between the different
> ILs are mostly in the grammar, not their syntax.

If I understand what you are saying, I am complaining about the
specific cases where the difference is in the syntax.  If a tree takes
a different set of operands in GENERIC and GIMPLE, or if the operands
have significantly different meanings, then I think we should use a
different tree code.  If the operands are more or less the same, then
I think using the same tree code is fine.

This is obviously all just my opinion, as somebody who came late to
this stuff and is trying to understand it.

Ian

Reply via email to