This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/38474] [Meta] slow compilation at -O0 (callgraph optimization, inline heuristics, expand )
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Nov 2009 10:50:29 -0000
- Subject: [Bug middle-end/38474] [Meta] slow compilation at -O0 (callgraph optimization, inline heuristics, expand )
- References: <bug-38474-6642@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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