This is the mail archive of the gcc-help@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]

"Maintenance developer's view of GCC"


Hi,
for the GCC Summit in 2003 Zachary Weinberg wrote a paper named "Maintenance
developer's view of GCC" where he explained the problems of the codebase. For a
university presentation I digged in GCC's history and this paper was very useful
 for this. Unfortunately I could not find an updated version of it or a similar
summary by someone else.

Still I am interested to know whether the problems Zachary described have been
fixed or not. If you have some time and could answer me the following questions
that would be great. :)

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?

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?

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?

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

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?

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 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 thank you very much if you took the time to answer these questions.

Regards
Robert

Btw: Please CC me as I am not on the list.

Attachment: signature.asc
Description: OpenPGP digital signature


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