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

--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> ---
With the redundant set_mem_addr_space removed -Og now takes

 expand                  :  19.21 (31%) usr   0.60 ( 8%) sys  20.06 (29%) wall 
165633 kB ( 8%) ggc
 TOTAL                 :  61.60             7.58            69.16           
2047648 kB

collisions are like

MEM[(StgWord *)_5 + -64B] != MEM[(StgWord *)_5 + -64B]
MEM[(StgWord *)_5 + -64B] != MEM[(StgWord *)_5 + -64B]
MEM[(StgWord *)_5 + -64B] != MEM[(StgWord *)_5 + -64B]
MEM[(StgWord *)_20 + 24B] != MEM[(StgWord *)_5 + -64B]

investigating ... (clearly not having a recorded hash to compare that
quickly with the hashtab collision handling makes things worse here).

Ouch.  This mem-attr hashtable is _global_!  The above _5 are different
SSA name objects (from different functions).  The hash is global because
we also have DECL_RTL for global variables, so we can't really clear it
(well, we could - we'd just lose mem-attr sharing at that points).

Clearing the mem-attrs htab in rest_of_clean_state () gets us to

 phase parsing           :   5.33 (13%) usr   4.41 (58%) sys   9.74 (19%) wall 
294905 kB (14%) ggc
 tree gimplify           :   2.05 ( 5%) usr   0.20 ( 3%) sys   2.05 ( 4%) wall 
252760 kB (12%) ggc
 tree CCP                :   1.25 ( 3%) usr   0.13 ( 2%) sys   1.13 ( 2%) wall 
 57081 kB ( 3%) ggc
 expand                  :   1.50 ( 4%) usr   0.13 ( 2%) sys   1.63 ( 3%) wall 
169767 kB ( 8%) ggc
 CSE                     :   1.29 ( 3%) usr   0.12 ( 2%) sys   1.05 ( 2%) wall 
 13532 kB ( 1%) ggc
 combiner                :   2.06 ( 5%) usr   0.15 ( 2%) sys   2.10 ( 4%) wall 
 11785 kB ( 1%) ggc
 integrated RA           :   4.51 (11%) usr   0.24 ( 3%) sys   4.30 ( 9%) wall 
427273 kB (21%) ggc
 LRA non-specific        :   1.26 ( 3%) usr   0.09 ( 1%) sys   1.40 ( 3%) wall 
  6517 kB ( 0%) ggc
 reload CSE regs         :   1.19 ( 3%) usr   0.06 ( 1%) sys   1.40 ( 3%) wall 
 13638 kB ( 1%) ggc
 rest of compilation     :   2.31 ( 5%) usr   0.18 ( 2%) sys   2.20 ( 4%) wall 
 40076 kB ( 2%) ggc
 TOTAL                 :  42.32             7.66            50.19           
2052932 kB

Reply via email to