This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC-4.5.0 comparison with previous releases and LLVM-2.7 on SPEC2000 for x86/x86_64
New size data -- hopefully it is sane this time.
Changes in experiment
1) shared libstdc++ is used with trunk gcc
2) bfd linker is used in both trunk and patched 4.4.3 compiler (which
used gold).
The size comparison for all C benchmarks in previous report is still
valid. The following is the corrected SPEC06 C++ number and some new
data (Os).
a) SPEC06 size
1. tot O3 vs tot O2
471.omnetpp/ 564839 579088 2.52%
450.soplex/ 352709 365785 3.71%
483.xalancbmk/ 3357954 3501139 4.26%
444.namd/ 319553 328449 2.78%
473.astar/ 31343 40199 28.26%
size_sum 4626398 4814660 4.07%
2. tot Os vs tot O2
471.omnetpp/ 564839 512157 -9.33%
450.soplex/ 352709 256364 -27.32%
483.xalancbmk/ 3357954 2747152 -18.19%
444.namd/ 319553 261799 -18.07%
473.astar/ 31343 26201 -16.41%
size_sum 4626398 3803673 -17.78%
3. tot O2 lto wpa vs tot O2
471.omnetpp/ 564839 531878 -5.84%
450.soplex/ 352709 319476 -9.42%
483.xalancbmk/ 3357954 2966800 -11.65%
444.namd/ 319553 318099 -0.46%
473.astar/ 31343 28747 -8.28%
size_sum 4626398 4165000 -9.97%
4. tot O3 lto wpa vs O2
471.omnetpp/ 564839 646708 14.49%
450.soplex/ 352709 361895 2.60%
483.xalancbmk/ 3357954 3262255 -2.85%
444.namd/ 319553 327738 2.56%
473.astar/ 31343 41707 33.07%
size_sum 4626398 4640303 0.30%
5. patched 4.43 O2 vs tot O2
471.omnetpp/ 564839 539237 -4.53%
450.soplex/ 352709 373263 5.83%
483.xalancbmk/ 3357954 3476137 3.52%
444.namd/ 319553 329769 3.20%
473.astar/ 31343 35250 12.47%
size_sum 4626398 4753656 2.75%
6. Patched 4.4.3 Os vs tot O2
471.omnetpp/ 564839 486838 -13.81%
450.soplex/ 352709 272146 -22.84%
483.xalancbmk/ 3357954 2769330 -17.53%
444.namd/ 319553 255295 -20.11%
473.astar/ 31343 25852 -17.52%
size_sum 4626398 3809461 -17.66%
7. patched 4.4.3 O2 FDO vs tot O2:
471.omnetpp/ 564839 508676 -9.94%
450.soplex/ 352709 356223 1.00%
483.xalancbmk/ 3357954 2919924 -13.04%
444.namd/ 319553 332664 4.10%
473.astar/ 31343 39738 26.78%
size_sum 4626398 4157225 -10.14%
8. patched 4.43 O2 LIPO vs tot O2:
471.omnetpp/ 564839 552361 -2.21%
450.soplex/ 352709 392106 11.17%
483.xalancbmk/ 3357954 3058259 -8.92%
444.namd/ 319553 334522 4.68%
473.astar/ 31343 38690 23.44%
size_sum 4626398 4375938 -5.41%
SPEC2k Os:
1. tot Os vs tot O2
300.twolf/ 182884 150921 -17.48%
181.mcf/ 11794 10246 -13.13%
164.gzip/ 36705 30983 -15.59%
186.crafty/ 171663 149301 -13.03%
255.vortex/ 463463 398908 -13.93%
256.bzip2/ 28803 24795 -13.92%
176.gcc/ 1422042 1158844 -18.51%
197.parser/ 103225 84814 -17.84%
253.perlbmk/ 563927 457664 -18.84%
175.vpr/ 139321 118330 -15.07%
252.eon/ 314603 258560 -17.81%
254.gap/ 496262 403633 -18.67%
size_sum 3934692 3246999 -17.48%
2. patched 4.4.3 Os vs tot Os:
300.twolf/ 150921 156185 3.49%
181.mcf/ 10246 10062 -1.80%
164.gzip/ 30983 30991 0.03%
186.crafty/ 149301 151477 1.46%
255.vortex/ 398908 402780 0.97%
256.bzip2/ 24795 24619 -0.71%
176.gcc/ 1158844 1177628 1.62%
197.parser/ 84814 82718 -2.47%
253.perlbmk/ 457664 466152 1.85%
175.vpr/ 118330 121446 2.63%
252.eon/ 258560 281061 8.70%
254.gap/ 403633 411540 1.96%
size_sum 3246999 3316659 2.15%
David
On Thu, Nov 18, 2010 at 4:37 PM, Mark Heffernan <meheff@google.com> wrote:
> On Thu, Nov 18, 2010 at 4:12 PM, Jan Hubicka <hubicka@ucw.cz> wrote:
>>
>> Interesting. Coincidentally I recently added logic for this for comdat
>> functions (setting probability to 20%) to deal with problems that a lot of
>> C++
>> programs does template instatiations that produce comdat functoins for now
>> good
>> reason. ?This indeed helped quite a lot. ?I didn't got so far to set
>> similar
>> logic for normal external functions, since current toolchain won't
>> eliminate
>> them by default.
>
> For non-static, no-address-taken functions, I found that they are emitted in
> the binary (after linker garbage collection) only about 20% of the time or
> so. ?Surprisingly small. ?This is for large c++ programs. ?I'd guess a fair
> number of these functions are template instantiations which may be
> instantiated a particular way (eg, with the same types) in only one
> compilation unit. ? Plus if all callsites of a function are inlined in one
> compilation unit, it's more likely that they might be inlined in other
> compilation units too. ?However, I didn't dive down deep to figure out
> exactly why this number is so low.
>>
>> Did the posted size numbers include function garbage collection and
>> unification
>> that is same for mainline as for google copmiler?
>
> I think the size numbers David posted earlier had some problems (statically
> linking stdc++ vs non-statically linked, I believe), so I'd wait until he
> reposts them to draw any conclusions. ?Not sure if garbage collection was
> enabled or not. ?In any case, we found maybe a 2% reduction in code size for
> -Os on x86-64 over our benchmark set comparing our local 4.4.3 vs vanilla
> 4.4.3. ?-O2 is comparable in size, but faster because we inline more
> aggressively which balances out the code size reduction. ?I have not done
> the comparison vs trunk.
> Mark
>
>>
>> Honza
>
>