[PATCH 3/5] IPA ICF pass

Martin Liška mliska@suse.cz
Sat Sep 27 10:46:00 GMT 2014


On 09/27/2014 09:47 AM, Markus Trippelsdorf wrote:
> On 2014.09.27 at 07:59 +0200, Markus Trippelsdorf wrote:
>>
>>> It seems that in this case we reject too many of equality candidates?
>>> It think the original numbers was about 4-5% but later some equivalences was
>>> disabled because of devirt/aliasing issues. Do you compare it with gold ICF
>>> enabled? There are quite few obvious improvements to the analysis that can
>>> be done, but I guess we need to analyze the interesting cases one by one.
> 
> Forgot to post the binary size numbers (in bytes):
> 
>               | gold's icf off | gold's icf on  |
> --------------+----------------+----------------+
> gcc's icf off |    79793880    |    74881040    |
> --------------+---------------------------------+
> gcc's icf on  |    78043608    |    73612800    |
> --------------+----------------+----------------+
> 

Thanks once more!

Gold ICF is quite strong, I will verify what functions are not caught by IPA ICF.
These data present that IPA ICF can reduce the binary by 2.19%. I know that it's quite a small improvement,
but if you realize that the pass can reduce just the size of .text (and slightly related sections). There are
stats about libxul.so (please ignore last 3 columns):

Section name               Start   Size in B            Size    Portion Disk read in B   Disk read   Sec. portion
                               0           0          0.00 B      0.00%              0      0.00 B          0.00%
.note.gnu.build-i            512          36         36.00 B      0.00%              0      0.00 B          0.00%
.dynsym                      552       81192        79.29 KB      0.08%              0      0.00 B          0.00%
.dynstr                    81744       90859        88.73 KB      0.09%              0      0.00 B          0.00%
.hash                     172608       21752        21.24 KB      0.02%              0      0.00 B          0.00%
.gnu.version              194360        6766         6.61 KB      0.01%              0      0.00 B          0.00%
.gnu.version_d            201128          56         56.00 B      0.00%              0      0.00 B          0.00%
.gnu.version_r            201184        1216         1.19 KB      0.00%              0      0.00 B          0.00%
.rela.dyn                 202400     8198208         7.82 MB      8.56%              0      0.00 B          0.00%
.rela.plt                8400608       70272        68.62 KB      0.07%              0      0.00 B          0.00%
.init                    8470880          26         26.00 B      0.00%              0      0.00 B          0.00%
.plt                     8470912       46864        45.77 KB      0.05%              0      0.00 B          0.00%
.text                    8517776    39014333        37.21 MB     40.72%              0      0.00 B          0.00%
.fini                   47532112           9          9.00 B      0.00%              0      0.00 B          0.00%
.rodata                 47532288    15258560        14.55 MB     15.93%              0      0.00 B          0.00%
.eh_frame               62790848     6203564         5.92 MB      6.47%              0      0.00 B          0.00%
.eh_frame_hdr           68994412     1088012         1.04 MB      1.14%              0      0.00 B          0.00%
.tbss                   70082560           4          4.00 B      0.00%              0      0.00 B          0.00%
.dynamic                70082560        1104         1.08 KB      0.00%              0      0.00 B          0.00%
.got                    70083664        1384         1.35 KB      0.00%              0      0.00 B          0.00%
.got.plt                70085048       23448        22.90 KB      0.02%              0      0.00 B          0.00%
.data                   70108544      811616       792.59 KB      0.85%              0      0.00 B          0.00%
.jcr                    70920160           8          8.00 B      0.00%              0      0.00 B          0.00%
.tm_clone_table         70920168           0          0.00 B      0.00%              0      0.00 B          0.00%
.fini_array             70920168           8          8.00 B      0.00%              0      0.00 B          0.00%
.init_array             70920176          16         16.00 B      0.00%              0      0.00 B          0.00%
.data.rel.ro.loca       70920192     3938880         3.76 MB      4.11%              0      0.00 B          0.00%
.data.rel.ro            74859072      269216       262.91 KB      0.28%              0      0.00 B          0.00%
.bss                    75128320     1844246         1.76 MB      1.92%              0      0.00 B          0.00%
.debug_line             75128288         517        517.00 B      0.00%              0      0.00 B          0.00%
.debug_info             75128805         817        817.00 B      0.00%              0      0.00 B          0.00%
.debug_abbrev           75129622         438        438.00 B      0.00%              0      0.00 B          0.00%
.debug_aranges          75130064         224        224.00 B      0.00%              0      0.00 B          0.00%
.debug_ranges           75130288         128        128.00 B      0.00%              0      0.00 B          0.00%
.comment                75130416          42         42.00 B      0.00%              0      0.00 B          0.00%
.debug_loc              75130458         304        304.00 B      0.00%              0      0.00 B          0.00%
.debug_str              75130762         653        653.00 B      0.00%              0      0.00 B          0.00%
.note.gnu.gold-ve       75131416          28         28.00 B      0.00%              0      0.00 B          0.00%
.symtab                 75131448     6170112         5.88 MB      6.44%              0      0.00 B          0.00%
.strtab                 81301560    12666771        12.08 MB     13.22%              0      0.00 B          0.00%
.shstrtab               93968331         419        419.00 B      0.00%              0      0.00 B          0.00%
                                    95812108        91.37 MB                         0      0.00 B          0.00%


Martin



More information about the Gcc-patches mailing list