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-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
>
>


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