[Bug c/60291] slow compile times for any mode (-O0/-O1/-O2) on large .c source file (30MBs)

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Feb 20 15:40:00 GMT 2014


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60291

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
remove_unused_locals is called from at least cfgcleanup-post-optimizing at -O0.

At -O0 I have (trunk)

 expand                  : 481.98 (94%) usr   1.15 (17%) sys 481.94 (93%) wall 
293891 kB (15%) ggc
 TOTAL                 : 512.44             6.86           519.82           
2023628 kB

so it's not that particular spot at -O0.

At -O1 it becomes dominant though:

 expand                  :  36.83 (18%) usr   0.78 ( 8%) sys  37.18 (17%) wall 
177246 kB ( 8%) ggc
 remove unused locals    : 122.09 (58%) usr   0.79 ( 8%) sys 122.80 (56%) wall 
     0 kB ( 0%) ggc
 TOTAL                 : 210.18             9.30           219.40           
2258487 kB

fixed by removing that walking of DECL_INITIAL.  I'm sure somebody put
thought into it but I can't think of any case that would break with not
doing that walking.  -O1 without that:

 phase parsing           :   5.50 ( 6%) usr   4.49 (48%) sys   9.98 (11%) wall 
294905 kB (13%) ggc
 expand                  :  34.99 (41%) usr   0.92 (10%) sys  36.44 (38%) wall 
177246 kB ( 8%) ggc
 integrated RA           :   4.65 ( 5%) usr   0.29 ( 3%) sys   4.60 ( 5%) wall 
478130 kB (21%) ggc
 TOTAL                 :  85.57             9.39            94.92           
2258487 kB

so probably the very same issue as with -O0.



More information about the Gcc-bugs mailing list