"Maintenance developer's view of GCC"

Ian Lance Taylor ian@airs.com
Tue Jan 24 14:22:00 GMT 2006


Robert Schuster <theBohemian@gmx.net> writes:

This question would be appropriate on gcc@gcc.gnu.org rather than
gcc-help.

> 1) First problem named in the paper are incomplete transitions. Do you know of
> any newer transitions which have been started but not completed as a whole?

Undoubtedly.

> The paper mentions that in 2003 there were two ways of doing peephole
> optimization (define_peephole (old) vs. define_peephole2 (new) ). Has this
> transition been completed until today?

No.

> 2) The second big problem is functional duplication. Do you know of any modules
> which have been introduced after 2003 which duplicate the behavior of an
> existing module?

No.

> In 2003 Zachary points out that there were 3 mechanisms for RTL simplification
> and suggests their unification. Has this unification step ever taken place?

They are more unified, but not fully unified.

> Furthermore he talks about a language independent tree-to-RTL converter which is
> not capable of dealing with whole-function tree representation. The result was
> that certain frontends duplicate a tree walking mechanism to feed the converter
> with one statement at a time.
> 
> Related to this problem was that each frontend invented its own form of
> whole-function trees instead of using a unified one. What is the state of these
> problems? Has the converter been updated to whole-function trees and is there a
> unified form for these trees in use by the frontends now?

The converter does whole-function trees now.  Not all frontends use
the same unified tree representation, and it would probably not be
appropriate for all frontends.  Some use their own representation, and
then convert to trees to pass to the gimplifier.  The C and C++
frontends do use a unified tree representation.

> 3) The last bit that is pointed out are inadequate interfaces.
> 
> It is mentioned that the interface between the core compiler and target specific
> backends was done using a big amount of macros. A newer scheme using targetm
> structures was in development at that time and was ought to make the interface
> more clear. Has this transition finished by now?

It is underway, but not complete.

> It would be great to know how these things have evolved over time. One thing
> that I am interested in: Have all the things explained by Zachary gotten a PR?

I'm not certain, but I doubt it.

See also
    http://gcc.gnu.org/wiki/Partial%20Transitions
    http://gcc.gnu.org/wiki/general%20backend%20cleanup

Ian



More information about the Gcc-help mailing list