This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: tree-ssa memory and compile-time regressions
On Thu, 8 Jan 2004, Jan Hubicka wrote:
> It seems to me that inlining just drives ssa-pre pass crazy.
> You can take a look into -dU dump, it contains information about what
> functions get inlinined where and the overall growth.
> In general the growth shall never exceed 100% so this seems to be either
> very nonlinear behaviour of something in the size of function or bug in
> code size estimation.
The patch I just posted "works", timing is now
Execution times (seconds)
garbage collection : 0.92 ( 3%) usr 0.00 ( 0%) sys 0.92 ( 3%) wall
callgraph construction: 0.12 ( 0%) usr 0.00 ( 0%) sys 0.13 ( 0%) wall
callgraph optimization: 0.11 ( 0%) usr 0.03 ( 1%) sys 0.14 ( 0%) wall
cfg construction : 0.16 ( 0%) usr 0.00 ( 0%) sys 0.16 ( 0%) wall
cfg cleanup : 0.27 ( 1%) usr 0.00 ( 0%) sys 0.27 ( 1%) wall
trivially dead code : 0.24 ( 1%) usr 0.00 ( 0%) sys 0.24 ( 1%) wall
life analysis : 0.96 ( 3%) usr 0.00 ( 0%) sys 0.96 ( 3%) wall
life info update : 0.53 ( 2%) usr 0.00 ( 0%) sys 0.53 ( 1%) wall
alias analysis : 0.55 ( 2%) usr 0.00 ( 0%) sys 0.55 ( 1%) wall
register scan : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.13 ( 0%) wall
rebuild jump labels : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
preprocessing : 0.40 ( 1%) usr 0.14 ( 6%) sys 0.54 ( 1%) wall
parser : 3.63 (11%) usr 0.90 (39%) sys 4.54 (12%) wall
name lookup : 2.13 ( 6%) usr 0.80 (35%) sys 2.96 ( 8%) wall
integration : 3.95 (12%) usr 0.04 ( 2%) sys 3.99 (11%) wall
tree gimplify : 0.45 ( 1%) usr 0.02 ( 1%) sys 0.47 ( 1%) wall
tree eh : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall
tree CFG construction : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.13 ( 0%) wall
tree CFG cleanup : 0.30 ( 1%) usr 0.00 ( 0%) sys 0.30 ( 1%) wall
tree alias analysis : 0.21 ( 1%) usr 0.00 ( 0%) sys 0.21 ( 1%) wall
tree PHI insertion : 0.04 ( 0%) usr 0.01 ( 0%) sys 0.05 ( 0%) wall
tree SSA rewrite : 0.24 ( 1%) usr 0.00 ( 0%) sys 0.24 ( 1%) wall
tree SSA other : 0.53 ( 2%) usr 0.01 ( 0%) sys 0.54 ( 1%) wall
dominator optimization: 1.25 ( 4%) usr 0.02 ( 1%) sys 1.27 ( 3%) wall
tree SRA : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
tree CCP : 0.18 ( 1%) usr 0.00 ( 0%) sys 0.18 ( 0%) wall
tree PRE : 0.92 ( 3%) usr 0.05 ( 2%) sys 0.97 ( 3%) wall
tree DCE : 0.28 ( 1%) usr 0.00 ( 0%) sys 0.28 ( 1%) wall
tree SSA to normal : 0.38 ( 1%) usr 0.01 ( 0%) sys 0.39 ( 1%) wall
callgraph verifier : 1.87 ( 5%) usr 0.01 ( 0%) sys 1.88 ( 5%) wall
dominance frontiers : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
expand : 1.08 ( 3%) usr 0.01 ( 0%) sys 1.11 ( 3%) wall
varconst : 0.07 ( 0%) usr 0.01 ( 0%) sys 0.08 ( 0%) wall
jump : 0.11 ( 0%) usr 0.03 ( 1%) sys 0.15 ( 0%) wall
CSE : 1.46 ( 4%) usr 0.00 ( 0%) sys 1.46 ( 4%) wall
global CSE : 4.47 (13%) usr 0.04 ( 2%) sys 4.51 (12%) wall
loop analysis : 0.71 ( 2%) usr 0.07 ( 3%) sys 0.79 ( 2%) wall
bypass jumps : 0.21 ( 1%) usr 0.01 ( 0%) sys 0.22 ( 1%) wall
CSE 2 : 0.72 ( 2%) usr 0.00 ( 0%) sys 0.72 ( 2%) wall
branch prediction : 0.34 ( 1%) usr 0.01 ( 0%) sys 0.35 ( 1%) wall
flow analysis : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
combiner : 0.49 ( 1%) usr 0.00 ( 0%) sys 0.50 ( 1%) wall
if-conversion : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.07 ( 0%) wall
regmove : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall
local alloc : 0.49 ( 1%) usr 0.01 ( 0%) sys 0.50 ( 1%) wall
global alloc : 1.03 ( 3%) usr 0.00 ( 0%) sys 1.04 ( 3%) wall
reload CSE regs : 0.37 ( 1%) usr 0.00 ( 0%) sys 0.37 ( 1%) wall
flow 2 : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall
if-conversion 2 : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
peephole 2 : 0.05 ( 0%) usr 0.01 ( 0%) sys 0.08 ( 0%) wall
rename registers : 0.07 ( 0%) usr 0.01 ( 0%) sys 0.09 ( 0%) wall
scheduling 2 : 0.46 ( 1%) usr 0.00 ( 0%) sys 0.46 ( 1%) wall
reorder blocks : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall
shorten branches : 0.08 ( 0%) usr 0.02 ( 1%) sys 0.10 ( 0%) wall
reg stack : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
final : 0.16 ( 0%) usr 0.00 ( 0%) sys 0.17 ( 0%) wall
rest of compilation : 0.23 ( 1%) usr 0.00 ( 0%) sys 0.24 ( 1%) wall
TOTAL : 34.02 2.28 36.73
but dunno, what I disabled with the patch either ;)
Richard.