------- Comment #61 from hubicka at gcc dot gnu dot org 2007-02-06 22:14 ------- Also forgot to mention, integration is slow because of the split_block quadraticness.
For -O2: We need 531MB of ram, GGC memory is peaking at 100MB, large portion of the non-GGC memory are definitly the scheduler dependency lists. xecution times (seconds) garbage collection : 14.26 ( 5%) usr 0.03 ( 1%) sys 14.27 ( 5%) wall 0 kB ( 0%) ggc life analysis : 73.96 (24%) usr 1.55 (46%) sys 75.52 (24%) wall 7207 kB ( 2%) ggc alias analysis : 0.92 ( 0%) usr 0.00 ( 0%) sys 0.87 ( 0%) wall 8530 kB ( 3%) ggc inline heuristics : 11.64 ( 4%) usr 0.12 ( 4%) sys 11.77 ( 4%) wall 2695 kB ( 1%) ggc integration : 16.71 ( 5%) usr 0.19 ( 6%) sys 16.91 ( 5%) wall 69808 kB (21%) ggc tree gimplify : 0.49 ( 0%) usr 0.07 ( 2%) sys 0.58 ( 0%) wall 14977 kB ( 4%) ggc tree operand scan : 1.25 ( 0%) usr 0.11 ( 3%) sys 1.29 ( 0%) wall 20889 kB ( 6%) ggc tree SRA : 1.20 ( 0%) usr 0.07 ( 2%) sys 1.37 ( 0%) wall 40364 kB (12%) ggc tree FRE : 1.14 ( 0%) usr 0.07 ( 2%) sys 1.21 ( 0%) wall 9230 kB ( 3%) ggc expand : 3.29 ( 1%) usr 0.10 ( 3%) sys 3.39 ( 1%) wall 45828 kB (14%) ggc PRE : 21.54 ( 7%) usr 0.00 ( 0%) sys 21.54 ( 7%) wall 898 kB ( 0%) ggc regmove : 93.59 (30%) usr 0.05 ( 1%) sys 93.64 (30%) wall 156 kB ( 0%) ggc local alloc : 5.34 ( 2%) usr 0.00 ( 0%) sys 5.33 ( 2%) wall 2838 kB ( 1%) ggc global alloc : 4.25 ( 1%) usr 0.06 ( 2%) sys 4.30 ( 1%) wall 19946 kB ( 6%) ggc reload CSE regs : 4.09 ( 1%) usr 0.00 ( 0%) sys 4.11 ( 1%) wall 11354 kB ( 3%) ggc scheduling 2 : 16.97 ( 6%) usr 0.44 (13%) sys 17.53 ( 6%) wall 20069 kB ( 6%) ggc TOTAL : 308.36 3.39 312.58 334207 kB total: 531915 kB regmove has the quadratic loop issues I added param for earliler in the track, but the parameter is now apparently bit too large since rest of compiler is a lot faster. Scheduler/out-of-SSA slowness is gone. There are no overly large bitmaps, one large allocpool: df_scan_ref pool 18 74449440 67061984 0 Looks like we are in pretty good shape on this one, only IMO important problems being the slowness of life (hopefully fixed by DFA) and memory houngryness of scheduler. Honza -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28071