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: GIMPLE issues and status of gimple-tuples


> a a. Conditional jumps in GIMPLE are not true three-address-code since they
> > specify two (2) branch targets (in their general form). E.g.:
> >
> > if (cond) then
> >   goto target1;
> > else
> >   goto target2;
> >
> > IMHO, this should be split (or at least made splittable) into:
> >
> > if (cond) then
> >   goto target1;
> > if (!cond) then
> >   goto target2;
> >
> > It seems redundant but it's really clean.
>
> Branches are already special in a lot of ways, so whether they have
> one argument or two doesn't seem to make any real difference.

Yes. But i don't think GIMPLE supports multi-way (general) branches. Isn't this
indicative of the difference between "one" and "many" branch targets? I mean
for executing GIMPLE on a VM, the latter would be the difficult choice. Having
the need of a storage of branch targets etc.

> > b. Are LOOP_EXPRs decomposable to combinations of if-then-else and gotos?
> It
> > would help for VM (virtual machine) execution of GIMPLE IR. Ideally, a
> GIMPLE
> > repres


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