This is the mail archive of the gcc@gcc.gnu.org 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: SIMPLE: A language-independent tree IR


(fortran parentheses rule)

> On Thu, Jan 03, 2002 at 01:05:23AM +0100, Toon Moene wrote:
> > Still, I feel this is different from the "sequence point" concept of the
> > C language, but I cannot come up with a simple example that shows it.
> 
> Yes, it is different.

The sequence points form a strict time order.  Given sequence points
S1,S2,S3 all external side effects (e.g. volatile reads and writes;
calls to external functions we don't fully understand) between S1 and
S2 have to be completed before any side effects between S2 and S3 start.
But then, the proposed low-level form will have the existing C statements
together with the simple triples, so I guess sequence points are like
statements.

With Fortran's parentheses, everything inside the parentheses has to be
treated as one expression, we can't transform it in ways that violate
this, but there's no requirements on the time order; we can interleave
evaluations if we want.  Maybe nothing is needed for this in the "low
level tree" code at all, if the rule is used that no transformations that
alter the results are allowed.

And then there is a third case, were we have groups of instructions that
have to be executed as atomic units but we don't care which group is
first.  For example, consider a language in which arguments to a function
can be computed in any order but the computation of the arguments can't
be interleaved.  This differs from sequence points.


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