This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/38474] [Meta] slow compilation at -O0 (callgraph optimization, inline heuristics, expand )



------- Comment #41 from rguenth at gcc dot gnu dot org  2009-11-27 10:50 -------
Micha - we still spend most of the time in expand_used_vars even at -O0.
Maybe you want to have a look.

 expand                : 555.46 (92%) usr   4.88 (77%) sys 579.14 (92%) wall 
310089 kB (56%) ggc
 integrated RA         :  13.46 ( 2%) usr   0.14 ( 2%) sys  13.57 ( 2%) wall   
8685 kB ( 2%) ggc
 reload                :  14.29 ( 2%) usr   0.71 (11%) sys  15.04 ( 2%) wall 
123548 kB (22%) ggc
 TOTAL                 : 605.85             6.35           631.31            
552067 kB

We also still peak at 2.4GB for this testcase...  the detailed memory
report is as follows (just the biggest pieces):

Kind                   Nodes      Bytes
---------------------------------------
decls                 145133   24456664
exprs                 490000   28838464
random kinds          226360    9054736
---------------------------------------
Total                 923230   66015565

GIMPLE statements
Kind                   Stmts      Bytes
---------------------------------------
assignments              361      29112
phi nodes                  1        240
conditionals              61       4880
sequences               3874      92976
everything else        78134   10240768
---------------------------------------
Total                  82431   10367976

(would probably interesting to separately count calls)

RTX Kind               Count      Bytes
---------------------------------------
expr_list            1113875   26733000
insn                 1106192   79645824
set                  1106448   26554752
reg                   829905   26556960
mem                  2508095   60194280
plus                 2894284   69462816
---------------------------------------
Total                10615719  311545008

DF as usual is a big memory consumer, even at -O0 ...

source location                                     Garbage            Freed   
         Leak         Overhead            Times
emit-rtl.c:907 (gen_reg_rtx)                       11781120: 2.3%  
11769792:33.0%          0: 0.0%    6519744:60.7%         18
rtl.c:285 (copy_rtx)                               21352344: 4.1%          0:
0.0%          0: 0.0%          0: 0.0%     889681
emit-rtl.c:425 (gen_raw_REG)                       26543328: 5.1%          0:
0.0%      13600: 0.1%          0: 0.0%     829904
reload1.c:2622 (eliminate_regs_1)                  26589096: 5.1%          0:
0.0%          0: 0.0%          0: 0.0%    1107879
emit-rtl.c:640 (gen_rtx_MEM)                       59946576:11.5%          0:
0.0%     247704: 1.2%          0: 0.0%    2508095
emit-rtl.c:5457 (copy_insn_1)                      61260256:11.8%          0:
0.0%          0: 0.0%          0: 0.0%    2608317
emit-rtl.c:3610 (make_insn_raw)                    79645680:15.3%          0:
0.0%          0: 0.0%          0: 0.0%    1106190
Total                                             520012383         35665696   
     20430230         10739229         16135674
source location                                     Garbage            Freed   
         Leak         Overhead            Times


So most of the memory is used in the RTL parts of the compiler.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |matz at gcc dot gnu dot org


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]