------- Comment #2 from danglin at gcc dot gnu dot org 2006-05-22 22:26 ------- Execution times (seconds) callgraph construction: 0.06 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall 142 kB ( 1%) ggc callgraph optimization: 0.00 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall 16 kB ( 0%) ggc ipa reference : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 4 kB ( 0%) ggc ipa pure const : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc ipa type escape : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 0 kB ( 0%) ggc cfg cleanup : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall 17 kB ( 0%) ggc trivially dead code : 0.06 ( 0%) usr 0.01 ( 0%) sys 0.03 ( 0%) wall 0 kB ( 0%) ggc life analysis : 0.16 ( 0%) usr 0.00 ( 0%) sys 0.18 ( 0%) wall 84 kB ( 1%) ggc life info update : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall 10 kB ( 0%) ggc alias analysis : 0.08 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall 225 kB ( 1%) ggc register scan : 0.06 ( 0%) usr 0.01 ( 0%) sys 0.07 ( 0%) wall 1 kB ( 0%) ggc rebuild jump labels : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 0 kB ( 0%) ggc preprocessing : 0.37 ( 0%) usr 0.45 (11%) sys 1.99 ( 0%) wall 1495 kB (10%) ggc lexical analysis : 0.07 ( 0%) usr 0.89 (21%) sys 1.00 ( 0%) wall 0 kB ( 0%) ggc parser : 0.55 ( 0%) usr 0.45 (11%) sys 0.88 ( 0%) wall 4186 kB (27%) ggc integration : 0.08 ( 0%) usr 0.02 ( 0%) sys 0.11 ( 0%) wall 1175 kB ( 8%) ggc tree gimplify : 0.14 ( 0%) usr 0.00 ( 0%) sys 0.23 ( 0%) wall 752 kB ( 5%) ggc tree eh : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc tree CFG construction : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 412 kB ( 3%) ggc tree CFG cleanup : 0.06 ( 0%) usr 0.01 ( 0%) sys 0.10 ( 0%) wall 10 kB ( 0%) ggc tree VRP : 0.06 ( 0%) usr 0.02 ( 0%) sys 0.10 ( 0%) wall 130 kB ( 1%) ggc tree copy propagation : 0.07 ( 0%) usr 0.01 ( 0%) sys 0.04 ( 0%) wall 90 kB ( 1%) ggc tree find ref. vars : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall 152 kB ( 1%) ggc tree PTA : 0.21 ( 0%) usr 0.00 ( 0%) sys 0.14 ( 0%) wall 260 kB ( 2%) ggc tree alias analysis : 0.02 ( 0%) usr 0.03 ( 1%) sys 0.08 ( 0%) wall 130 kB ( 1%) ggc tree PHI insertion : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 38 kB ( 0%) ggc tree SSA rewrite : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall 228 kB ( 1%) ggc tree SSA other : 0.02 ( 0%) usr 0.01 ( 0%) sys 0.04 ( 0%) wall 0 kB ( 0%) ggc tree SSA incremental : 0.04 ( 0%) usr 0.02 ( 0%) sys 0.06 ( 0%) wall 47 kB ( 0%) ggc tree operand scan : 0.20 ( 0%) usr 0.12 ( 3%) sys 0.25 ( 0%) wall 209 kB ( 1%) ggc dominator optimization: 0.13 ( 0%) usr 0.01 ( 0%) sys 0.15 ( 0%) wall 313 kB ( 2%) ggc tree SRA : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc tree STORE-CCP : 0.01 ( 0%) usr 0.01 ( 0%) sys 0.01 ( 0%) wall 19 kB ( 0%) ggc tree CCP : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall 20 kB ( 0%) ggc tree PRE : 0.08 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 0%) wall 216 kB ( 1%) ggc tree FRE : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall 145 kB ( 1%) ggc tree code sinking : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 1 kB ( 0%) ggc tree forward propagate: 0.00 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall 17 kB ( 0%) ggc tree conservative DCE : 0.01 ( 0%) usr 0.01 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc tree aggressive DCE : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 0 kB ( 0%) ggc tree DSE : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall 7 kB ( 0%) ggc tree loop bounds : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall 34 kB ( 0%) ggc tree canonical iv : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall 23 kB ( 0%) ggc complete unrolling : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 21 kB ( 0%) ggc tree iv optimization : 0.11 ( 0%) usr 0.02 ( 0%) sys 0.12 ( 0%) wall 360 kB ( 2%) ggc tree copy headers : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 86 kB ( 1%) ggc tree SSA uncprop : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc tree SSA to normal : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall 141 kB ( 1%) ggc tree NRV optimization : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc dominance frontiers : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc expand :5242.96 (100%) usr 2.06 (49%) sys5333.55 (100%) wall 1058 kB ( 7%) ggc jump : 0.00 ( 0%) usr 0.01 ( 0%) sys 0.00 ( 0%) wall 4 kB ( 0%) ggc CSE : 0.22 ( 0%) usr 0.00 ( 0%) sys 0.26 ( 0%) wall 57 kB ( 0%) ggc loop analysis : 0.08 ( 0%) usr 0.01 ( 0%) sys 0.10 ( 0%) wall 209 kB ( 1%) ggc global CSE : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc CPROP 1 : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 54 kB ( 0%) ggc PRE : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 11 kB ( 0%) ggc CPROP 2 : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 50 kB ( 0%) ggc bypass jumps : 0.05 ( 0%) usr 0.01 ( 0%) sys 0.05 ( 0%) wall 47 kB ( 0%) ggc CSE 2 : 0.17 ( 0%) usr 0.01 ( 0%) sys 0.17 ( 0%) wall 30 kB ( 0%) ggc branch prediction : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall 45 kB ( 0%) ggc combiner : 0.23 ( 0%) usr 0.01 ( 0%) sys 0.20 ( 0%) wall 261 kB ( 2%) ggc if-conversion : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall 9 kB ( 0%) ggc regmove : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall 3 kB ( 0%) ggc scheduling : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall 302 kB ( 2%) ggc local alloc : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.07 ( 0%) wall 73 kB ( 0%) ggc global alloc : 0.15 ( 0%) usr 0.00 ( 0%) sys 0.13 ( 0%) wall 153 kB ( 1%) ggc reload CSE regs : 0.06 ( 0%) usr 0.01 ( 0%) sys 0.09 ( 0%) wall 134 kB ( 1%) ggc flow 2 : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 150 kB ( 1%) ggc if-conversion 2 : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 0 kB ( 0%) ggc peephole 2 : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 3 kB ( 0%) ggc rename registers : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall 1 kB ( 0%) ggc scheduling 2 : 0.14 ( 0%) usr 0.01 ( 0%) sys 0.15 ( 0%) wall 177 kB ( 1%) ggc delay branch sched : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall 250 kB ( 2%) ggc reorder blocks : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 50 kB ( 0%) ggc shorten branches : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 0 kB ( 0%) ggc final : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.09 ( 0%) wall 82 kB ( 1%) ggc symout : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc TOTAL :5247.66 4.24 5342.10 15337 kB
These are the pass times in the report sent to me. As can be seen, all the time is spent in expand. It appears the problem is the function free_area_init_node. I see the following backtrace: Assembling functions: zone_watermark_ok nr_free_zone_pages read_page_state_offset __mod_page_state_offset mod_page_state_offset __get_zone_counts memmap_init_zone zone_init_free_lists zonetable_add frag_stop vmstat_next page_alloc_init calculate_totalreserve_pages setup_per_zone_lowmem_reserve frag_next frag_start {GC 6427k -> 3960k} get_zone_counts vmstat_show vmstat_stop zoneinfo_show lowmem_reserve_ratio_sysctl_handler percpu_pagelist_fraction_sysctl_handler setup_per_zone_pages_min nr_free_pages min_free_kbytes_sysctl_handler free_area_init_node Program received signal SIGINT, Interrupt. 0x004eec44 in $$divU () (gdb) bt #0 0x004eec44 in $$divU () #1 0x004f11fc in __umoddi3 () #2 0x00216490 in synth_mult (alg_out=0xc0363c60, t=<value optimized out>, cost_limit=0xc0363bc8, mode=DImode) at ../../gcc/gcc/expmed.c:2717 #3 0x00216320 in synth_mult (alg_out=0xc0363860, t=<value optimized out>, cost_limit=0xc03637c8, mode=DImode) at ../../gcc/gcc/expmed.c:2625 #4 0x00215e6c in synth_mult (alg_out=0xc0363460, t=<value optimized out>, cost_limit=0xc03633c8, mode=DImode) at ../../gcc/gcc/expmed.c:2584 #5 0x00215f30 in synth_mult (alg_out=0xc0363060, t=<value optimized out>, cost_limit=0xc0362fc8, mode=DImode) at ../../gcc/gcc/expmed.c:2645 #6 0x00216158 in synth_mult (alg_out=0xc0362c60, t=<value optimized out>, cost_limit=0xc0362bc8, mode=DImode) at ../../gcc/gcc/expmed.c:2795 #7 0x00216570 in synth_mult (alg_out=0xc0362860, t=<value optimized out>, cost_limit=0xc03627c8, mode=DImode) at ../../gcc/gcc/expmed.c:2698 #8 0x00216838 in synth_mult (alg_out=0xc0362460, t=<value optimized out>, cost_limit=0xc03623c8, mode=DImode) at ../../gcc/gcc/expmed.c:2770 #9 0x00216838 in synth_mult (alg_out=0xc0362060, t=<value optimized out>, cost_limit=0xc0361fc8, mode=DImode) at ../../gcc/gcc/expmed.c:2770 #10 0x00216838 in synth_mult (alg_out=0xc0361c60, t=<value optimized out>, cost_limit=0xc0361bc8, mode=DImode) at ../../gcc/gcc/expmed.c:2770 #11 0x00215e6c in synth_mult (alg_out=0xc0361860, t=<value optimized out>, cost_limit=0xc03617c8, mode=DImode) at ../../gcc/gcc/expmed.c:2584 #12 0x00216570 in synth_mult (alg_out=0xc0361460, t=<value optimized out>, ---Type <return> to continue, or q <return> to quit--- cost_limit=0xc03613c8, mode=DImode) at ../../gcc/gcc/expmed.c:2698 #13 0x00215f30 in synth_mult (alg_out=0xc0361060, t=<value optimized out>, cost_limit=0xc0360fc8, mode=DImode) at ../../gcc/gcc/expmed.c:2645 #14 0x00216158 in synth_mult (alg_out=0xc0360c60, t=<value optimized out>, cost_limit=0xc0360bc8, mode=DImode) at ../../gcc/gcc/expmed.c:2795 #15 0x00215e6c in synth_mult (alg_out=0xc0360860, t=<value optimized out>, cost_limit=0xc03607c8, mode=DImode) at ../../gcc/gcc/expmed.c:2584 #16 0x00216320 in synth_mult (alg_out=0xc03605e0, t=<value optimized out>, cost_limit=0xc03603c8, mode=DImode) at ../../gcc/gcc/expmed.c:2625 #17 0x00216838 in synth_mult (alg_out=0xc0360024, t=<value optimized out>, cost_limit=0xc0360208, mode=DImode) at ../../gcc/gcc/expmed.c:2770 #18 0x00216a30 in choose_mult_variant (mode=DImode, val=-1069376468041133427, alg=0xc0360024, variant=0xc0360008, mult_cost=80) at ../../gcc/gcc/expmed.c:2887 #19 0x002174f8 in expand_mult (mode=DImode, op0=<value optimized out>, op1=0x405cc810, target=0x0, unsignedp=0) at ../../gcc/gcc/expmed.c:3188 #20 0x00151904 in multiply_by_cost (cst=-1069376468041133427, mode=DImode) at ../../gcc/gcc/tree-ssa-loop-ivopts.c:3180 #21 0x001552a4 in get_computation_cost (data=<value optimized out>, use=<value optimized out>, cand=<value optimized out>, address_p=<value optimized out>, depends_on=0x0) at ../../gcc/gcc/tree-ssa-loop-ivopts.c:3314 #22 0x0015750c in determine_use_iv_cost (data=0xc035fc88, use=0xffff, ---Type <return> to continue, or q <return> to quit--- cand=0x6bf020) at ../../gcc/gcc/tree-ssa-loop-ivopts.c:3871 #23 0x0015ae98 in determine_use_iv_costs (data=0xc035fc88) at ../../gcc/gcc/tree-ssa-loop-ivopts.c:4108 #24 0x0015be34 in tree_ssa_iv_optimize_loop (data=0xc035fc88, loop=<value optimized out>) at ../../gcc/gcc/tree-ssa-loop-ivopts.c:5765 #25 0x0015c730 in tree_ssa_iv_optimize (loops=0x672568) at ../../gcc/gcc/tree-ssa-loop-ivopts.c:5817 #26 0x00129d34 in tree_ssa_loop_ivopts () at ../../gcc/gcc/tree-ssa-loop.c:457 #27 0x00396fc4 in execute_one_pass (pass=0x59ce18) at ../../gcc/gcc/passes.c:864 #28 0x00397178 in execute_pass_list (pass=0x59ce18) at ../../gcc/gcc/passes.c:911 #29 0x0039718c in execute_pass_list (pass=0x59d088) at ../../gcc/gcc/passes.c:912 #30 0x0039718c in execute_pass_list (pass=0x59ca04) at ../../gcc/gcc/passes.c:912 #31 0x000bbe34 in tree_rest_of_compilation (fndecl=0x40461100) at ../../gcc/gcc/tree-optimize.c:418 #32 0x00030dcc in c_expand_body (fndecl=0x6) at ../../gcc/gcc/c-decl.c:6723 #33 0x003df510 in cgraph_expand_function (node=0x400b7180) at ../../gcc/gcc/cgraphunit.c:1108 #34 0x003e0bc0 in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1173 #35 0x00033c1c in c_write_global_declarations () at ../../gcc/gcc/c-decl.c:7838 ---Type <return> to continue, or q <return> to quit--- #36 0x0035c2e0 in toplev_main (argc=<value optimized out>, argv=<value optimized out>) at ../../gcc/gcc/toplev.c:1012 #37 0x4072d6d8 in __libc_start_main () from /lib/libc.so.6 #38 0x0001be98 in _start () at ../sysdeps/hppa/elf/start.S:84 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27733