Whole-file compilation in gfortran
FX Coudert
fxcoudert@gmail.com
Tue Aug 14 22:43:00 GMT 2007
Hi gfortranners, hi Michael,
A short mail about the topic of whole-file compilation. This is not
an urgent mail, I simply thought about it a bit more, and I wanted to
share my impressions, check that I'm not too confused about the goals
and means here, and then share links to two patches ([1] and [2]
below) by Steven Bosscher and Michael Matz aiming at this (I didn't
know about these patches, or forgot, so maybe the notice will be good
for others as well).
As far as I understood, there are 3 different issues to be tackled
that this would help us :
(a) perform better inter-file checking of interfaces,
(b) inline non-contained procedures, and
(c) module loading performance
I will not talk about (a) here, as it's probably the most tricky. As
far as I see, (c) requires us to store modules into memory in
addition to writing them to disk, so that we can load symbols from
them without actually reading/parsing the file back. There might be
more to it, Paul could tell.
Now, I'm kind of puzzled about (b). Following the approach of Michael
Matz at [2], means that every time we would create a function decl,
we start by looking whether there already is one with this name in
the toplevel namespace, and if there is, we use this instead of
creating a new. Michael apparently never follow this patch up, but I
can't think of any fundamental objection to it, of anything that
would make it completely flawed. (The one thing I can think of is
that, without further type-checking of function decls, we might end
up create ICEs on invalid code that the front-end doesn't catch yet,
like mismatching arguments; but we can add type-checking, can't we?
So, I hope my point of view here is not to naïve, but I'd like to
hear your opinions on all this.
FX
[1] http://gcc.gnu.org/ml/gcc/2005-07/msg00863.html
[2] http://gcc.gnu.org/ml/gcc/2005-07/msg00940.html
More information about the Fortran
mailing list