------- Comment #46 from hubicka at ucw dot cz  2006-08-21 17:11 -------
Subject: Re:  [4.1/4.2 regression] A file that can not be compiled in
reasonable time/space

Hi,
for completeness the -O3 -fno-tree-pre -fno-tree-fre results
(tree-pre/fre needs something little over 2GB of ram to converge)

Execution times (seconds)
 garbage collection    :   1.11 ( 1%) usr   0.07 ( 2%) sys   8.57 ( 5%) wall   
   0 kB ( 0%) ggc
 life analysis         :   5.47 ( 4%) usr   0.12 ( 3%) sys   5.63 ( 3%) wall   
2701 kB ( 1%) ggc
 life info update      :   2.05 ( 2%) usr   0.00 ( 0%) sys   2.10 ( 1%) wall   
 643 kB ( 0%) ggc
 integration           :   8.36 ( 7%) usr   0.18 ( 5%) sys   8.61 ( 5%) wall  
79611 kB (27%) ggc
 tree CFG cleanup      :   3.69 ( 3%) usr   0.00 ( 0%) sys   3.77 ( 2%) wall   
  20 kB ( 0%) ggc
 tree alias analysis   :   2.64 ( 2%) usr   0.25 ( 6%) sys   3.01 ( 2%) wall   
   0 kB ( 0%) ggc
 tree SSA rewrite      :   2.17 ( 2%) usr   0.02 ( 1%) sys   2.22 ( 1%) wall  
21589 kB ( 7%) ggc
 tree SSA incremental  :   4.04 ( 3%) usr   0.01 ( 0%) sys   4.10 ( 2%) wall   
1061 kB ( 0%) ggc
 tree operand scan     :   1.54 ( 1%) usr   0.54 (14%) sys   1.95 ( 1%) wall  
18382 kB ( 6%) ggc
 dominator optimization:   2.49 ( 2%) usr   0.06 ( 2%) sys   2.61 ( 1%) wall  
11262 kB ( 4%) ggc
 tree SRA              :   3.04 ( 2%) usr   0.08 ( 2%) sys   3.12 ( 2%) wall  
25600 kB ( 9%) ggc
 tree SSA to normal    :  38.17 (31%) usr   0.09 ( 2%) sys  38.56 (21%) wall  
11214 kB ( 4%) ggc
 dominance computation :   2.40 ( 2%) usr   0.05 ( 1%) sys   2.52 ( 1%) wall   
   0 kB ( 0%) ggc
 expand                :   4.22 ( 3%) usr   0.20 ( 5%) sys  11.38 ( 6%) wall  
35690 kB (12%) ggc
 global alloc          :  13.43 (11%) usr   1.28 (32%) sys  54.13 (29%) wall   
5873 kB ( 2%) ggc
 flow 2                :   0.37 ( 0%) usr   0.01 ( 0%) sys   0.78 ( 0%) wall   
5092 kB ( 2%) ggc
 TOTAL                 : 123.25             3.98           183.52            
291674 kB

Note that the testcase is very different at -O3, because min/max
functions are inlined breaking gigantic basic blocks into number of
small BBs, so many of bottlenecks visible at -O2 go away.  I duno what
happens in global alloc, tree SSA to normal is the
live_on_entry/live_on_exit dicussed.  We also have problems with very
deep recursion levels as dominator tree is deep.  I am thinking about
implementing iterators for walking in dom order as the current fully
blown domtree walker is bit uneasy in some cases.

With FRE/PRE enabled also GGC runs out of stack frame size, because some
of temporary values in annotations leaks and instruct GGC to recurse
insanely.

Honza


-- 


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

Reply via email to