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: LTO, LLVM, etc.


Mark Mitchell <mark@codesourcery.com> writes:

> There is one advantage I see in the LTO design over LLVM's design.  In
> particular, the LTO proposal envisions a file format that is roughly at
> the level of GIMPLE.  Such a file format could easily be extended to be
> at the source-level version of Tree used in the front-ends, so that
> object files could contain two extra sections: one for LTO and one for
> source-level information.  The latter section could be used for things
> like C++ "export" -- but, more importantly, for other tools that need
> source-level information, like IDEs, indexers, checkers, etc.  (All
> tools that presently use the EDG front end would be candidate clients
> for this interface.)

It seems to me that this is clearly useful anyhow.  And it seems to me
that whether or not we use LTO, LLVM, or neither, we will still want
something along these lines.

So if anybody is inclined to work on this, they could start now.
Anything that writes our our high level tree representation (GENERIC
plus language specific codes) is going to work straightforwardly for
our low level tree representation (GIMPLE).  And we are going to want
to be able to write out the high level representation no matter what.

In short, while this is an important issue, I don't see it as strongly
favoring either side.  What it means, essentially, is that LTO is not
quite as much work as it might otherwise seem to be, because we are
going to do some of the work anyhow.  So when considering how much
work has to be done for LTO compared to how much work has to be done
for LLVM, we should take that into account.

This is more or less what you said, of course, but I think with a
different spin.

> If we do switch to LLVM, it's not going to happen before at least 4.3,
> and, if I had to guess, not before 4.4.

Allow me to be the first person to say that if we switch to LLVM, the
first release which incorporates it as the default compilation path
should be called 5.0.

Ian


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