This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: SSA Vs unSSA
- From: "Fran Baena" <franbaena at gmail dot com>
- To: "Diego Novillo" <dnovillo at google dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 9 Apr 2008 16:23:59 +0200
- Subject: Re: SSA Vs unSSA
- References: <7ed133d10803261107o698d026eu531e47c2d229d2b3@mail.gmail.com> <47EBBDD1.1010002@google.com>
> Depends on what SSA form you want. A rewriting form is problematic because
> backends are allowed to modify the IL behind the back of the optimizers and
> can emit instructions that are difficult/impossible to represent in SSA form
> (parallel).
I don't exactly know what rewriting SSA form means. I think that is a
SSA form that could be updated along the several optimizations passes.
>From this previous explanation I deduce that SSA form goes on once the
Middle-End layer has finished, and no translation to GIMPLE is
performed, because target-dependent (or RTL) optimizations are applied
to this SSA form.
> A non-rewriting form, however, is not hard to implement. We've discussed
> this a few weeks ago. At some point we will build a FUD-chain
> representation from the currently dense UD links in the DF code.
What is the difference between rewriting and non-rewriting SSA form?
>From this I deduce that FUD-chain are used to translate from SSA to
GIMPLE, isn't it?
It's clear that translating from SSA form to GIMPLE is not trivial,
and not always can be done. During the optimizations it is possible
that new variables appear or that some statement are removed from
Intermediate Representation, son unSSA wouldn't be performed.
Fran