[gnat] reuse of ASTs already constructed
Oliver Kellogg
oliver.kellogg@t-online.de
Sat Jul 7 20:33:00 GMT 2012
At http://gcc.gnu.org/ml/gcc/2012-06/msg00332.html,
Arnaud Charlet wrote:
> > In multi source compilations, main units may get assigned different
> > unit numbers than in single source compilations; this is due to the
> > reuse of entries in the Lib.Units table.
> >
> > Is that tolerable?
>
> You'd need to check whether the IDEs (in particular GPS) will not have
> troubles with this.
It turns out that in this case, my analysis was incorrect.
The reason for the different unit numbers in 'X' lines is that a few
dependencies ('D' lines) are missing. I will look into that soon.
Meanwhile, I have made some comparisons between single and multi
file compilations. For a package hierarchy consisting of 262 specs
totalling 82164 SLOC and 77 bodies totalling 135771 SLOC, compiling
the bodies yields the following results.
1. many gnat1 invocations without Ada syntax tree sharing
time gcc -S *.adb
real 9m12.159s
user 4m59.391s
sys 0m7.061s
time gcc -S -g *.adb
real 9m59.429s
user 8m57.776s
sys 0m5.750s
2. single gnat1 invocation with Ada syntax tree sharing
time gcc -multi -S *.adb
real 4m22.915s
user 3m34.466s
sys 0m2.900s
time gcc -multi -S -g *.adb
real 7m16.770s
user 6m29.554s
sys 0m2.711s
I have not been able to compare optimizing compilation due
to a crash in multi mode when using the -O switch.
(Right now I'm still concentrating on the front end, and I will
look into that later.)
The comparison was done using the attached patch which is
against gcc/trunk r177548 of 2011-08-07.
-- Oliver
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gnat1_multi_source_compile-5.diff.gz
Type: application/x-gzip
Size: 42427 bytes
Desc:
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20120707/16519cf3/attachment.bin>
More information about the Gcc
mailing list