https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87988
--- Comment #8 from rguenther at suse dot de <rguenther at suse dot de> --- On November 27, 2018 12:01:03 PM GMT+01:00, "hubicka at gcc dot gnu.org" <gcc-bugzi...@gcc.gnu.org> wrote: >https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87988 > >--- Comment #7 from Jan Hubicka <hubicka at gcc dot gnu.org> --- >Hi, >ltrans files are 1374K without and 1339K with patch. > >WPA report without patch: >[WPA] read 13690507 SCCs of average size 1.397311 >[WPA] 19129895 tree bodies read in total >[WPA] tree SCC table: size 4194301, 2847668 elements, collision ratio: >0.834030 >[WPA] tree SCC max chain length 156 (size 1) >[WPA] Compared 5298938 SCCs, 3633923 collisions (0.685783) >[WPA] Merged 5282405 SCCs >[WPA] Merged 9857161 tree bodies >[WPA] Merged 3063763 types >[WPA] 1614359 types prevailed (2464626 associated trees) >[WPA] GIMPLE canonical type table: size 32749, 22785 elements, 149648 >searches, >63491 collisions (ratio: 0.424269) >[WPA] GIMPLE canonical type pointer-map: 22785 elements, 348123 >searches >[WPA] # of input files: 2236 >WPA] Compression: 298531604 input bytes, 898586109 uncompressed bytes >(ratio: >3.010020) >[WPA] Size of mmap'd section decls: 298531604 bytes > >WPA report with patch: >WPA] read 13139926 SCCs of average size 1.412202 >[WPA] 18556224 tree bodies read in total >[WPA] tree SCC table: size 4194301, 2725601 elements, collision ratio: >0.813527 >[WPA] tree SCC max chain length 153 (size 1) >[WPA] Compared 5043033 SCCs, 3379920 collisions (0.670216) >[WPA] Merged 5027945 SCCs >[WPA] Merged 9584037 tree bodies >[WPA] Merged 2957501 types >[WPA] 1557131 types prevailed (2402973 associated trees) >[WPA] GIMPLE canonical type table: size 32749, 22783 elements, 148468 >searches, >63408 collisions (ratio: 0.427082) >[WPA] GIMPLE canonical type pointer-map: 22783 elements, 347231 >searches >[WPA] Compression: 288287953 input bytes, 867825506 uncompressed bytes >(ratio: >3.010273) >[WPA] Size of mmap'd section decls: 288287953 bytes > > >The WPA report after optimization without patch: >WPA statistics >[WPA] read 13690507 SCCs of average size 1.397311 >[WPA] 19129895 tree bodies read in total >[WPA] # of input files: 2236 >[WPA] # of input cgraph nodes: 411683 >[WPA] # of function bodies: 83824 >[WPA] # of output files: 128 >[WPA] # of output symtab nodes: 1050843 >[WPA] # of output tree pickle references: 708465 >[WPA] # of output tree bodies: 190996 >[WPA] # callgraph partitions: 128 >[WPA] Compression: 416611153 input bytes, 1228624058 uncompressed bytes >(ratio: >2.949090) >[WPA] Size of mmap'd section decls: 298531604 bytes >[WPA] Size of mmap'd section function_body: 72959123 bytes > >with patch: >WPA statistics >[WPA] read 13139926 SCCs of average size 1.412202 >[WPA] 18556224 tree bodies read in total >[WPA] # of input files: 2236 >[WPA] # of input cgraph nodes: 411683 >[WPA] # of function bodies: 83824 >[WPA] # of output files: 128 >[WPA] # of output symtab nodes: 1050843 >[WPA] # of output tree pickle references: 685935 >[WPA] # of output tree bodies: 183785 >[WPA] # callgraph partitions: 128 >[WPA] Compression: 404728108 input bytes, 1193421138 uncompressed bytes >(ratio: >2.948699) >[WPA] Size of mmap'd section decls: 288287953 bytes >[WPA] Size of mmap'd section function_body: 71319730 bytes That makes it not worth the trouble? It might be most of the trees are still reachable via DECL_ABSTRACT_ORIGIN from the locals (even if they are unused). Do we now aggressively prune unused locals from BLOCK_VARS?