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

Re: GCC 3.3 compile speed regression - AN ANSWER


Op wo 12-02-2003, om 07:19 schreef Linus Torvalds:
> But it still boils down to the same thing: you don't want to go over the
> data structures and convert them in between phases. You generate a ton of
> data the first time through, you'd rather not touch it later (much less
> convert it) unless you really need to.

Mwah, no...  There are so many compilers that use different data
structures for different internal representations, and it works for
them.

For example, Open64 first builds a parse tree, and then knows five
different WHIRL "levels".  GCC has a parse 'tree' and thrn RTL.  I don't
think that's such a big problem, this that's how it used to work even
when GCC still was fast.

You need the right representation for the right pass, your tree->code
idea is an example of the wrong representatin for code generation.

You are right about one thing: GCC generates lots of data that it never
touches again.  This has already been discussed, and I suppose you could
claim that's also related to garbage collection (GC makes one lazy??)
which also has been discussed many times.  It would be interesting to
see how much garbage is produced during each phase.

Greetz
Steven



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