---

What’s New in the GNU Compiler Collection Release Series

[ Thanks to An Anonymous Reader for
this link. ]

“The 4.0 release (4.0.4 being the last in the series)
is the first step into GCC 4. As such, it was not recommended for
production development until a stabilization process could be
completed. This release included a large number of
changes—two in particular being the introduction of a new
optimization framework (Tree SSA) and support for
autovectorization.

“Prior to GCC 4, the intermediate representation used was called
Register Transfer Language (RTL). RTL is a low-level representation
very close to assembly language (inspired by LISP S-expressions).
The problem with RTL is that the optimizations it enables are those
close to the target. Optimizations that require higher-level
information about the program may not be possible, because their
expression is lost in RTL. Tree SSA is designed to be both language
independent and target independent while supporting improved
analysis and richer optimizations.

“Tree SSA introduces two new intermediate representations. The
first is called GENERIC, which is a generic tree representation
that’s formed from the language front-end trees. The GENERIC trees
are converted into GIMPLE form and a subsequent control flow graph
to support SSA-based optimizations. Finally, the SSA trees are
converted into RTL, which the back end uses for target code
generation. An overly simplified description, but the result is a
new intermediate form better suited for high- and low-level
optimizations. (See Resources for more details on this
process.)”


Complete Story

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends, & analysis