This is the mail archive of the
mailing list for the GCC project.
Re: From SSA back to GIMPLE.
- From: Paolo Bonzini <bonzini at gnu dot org>
- To: "J.C. Pizarro" <jcpiza at gmail dot com>
- Cc: "Jose ." <kasty dot jose at gmail dot com>, gcc at gcc dot gnu dot org, Diego Novillo <dnovillo at redhat dot com>
- Date: Mon, 22 Oct 2007 16:32:27 +0200
- Subject: Re: From SSA back to GIMPLE.
- References: <firstname.lastname@example.org>
J.C. Pizarro wrote:
Are they mixed into a single
variable declaration? Are they treated as separate variables and
handled later by the register allocator?
If possible, the former. If not possible, they are kept as separate
variables. This happens if the subscripted variables have overlapping
live ranges because of optimizations that were made on the SSA form.
Is not it easy to write 3 stages GENERIC->GIMPLE->RTL instead of 5 stages?
Is meaningful the optimization of the complex bi-transformation
I don't know what you mean, but yes, there is value in going to SSA and
back. SSA makes global optimization much easier, and that's the main
improvement introduced in GCC 4.0 and later refined. Of course not all
optimizations benefit from SSA, some (such as OpenMP implementation)
only benefit from having a high-level intermediate representation
(GIMPLE). But most do, in one way or the other.
In the future, GCC might instead do GENERIC->GIMPLE->SSA->RTL, without
going back to GIMPLE. But the SSA step is there to stay. :-)