------- Comment #6 from lucier at math dot purdue dot edu 2006-04-20 03:18 ------- Subject: Re: Inordinate compile times on large routines
Thanks a lot. Here are the timing statistics (with --disable- checking) after your patch. PS: I'm sorry it took 9 hours to compile on your box. Memory still allocated at the end of the compilation process Size Allocated Used Overhead 8 16k 14k 480 16 52k 12k 1144 64 1276k 1239k 19k 256 484k 452k 6776 512 36k 25k 504 1024 220k 216k 3080 2048 24k 20k 336 4096 68k 68k 952 8192 56k 56k 392 16384 16k 16k 56 32768 288k 288k 504 65536 64k 64k 56 131072 128k 128k 56 262144 512k 512k 112 524288 512k 512k 56 1048576 1024k 1024k 56 2097152 4096k 4096k 112 112 34M 16M 484k 208 40k 38k 560 192 3344k 3287k 45k 160 28k 6240 392 176 564k 261k 7896 48 2088k 1165k 32k 32 144k 68k 2592 80 35M 2063k 499k Total 85M 32M 1107k String pool entries 158128 identifiers 158128 (100.00%) slots 262144 bytes 1981k (169k overhead) table size 2048k coll/search 1.1434 ins/search 0.1946 avg. entry 12.83 bytes (+/- 7.82) longest entry 67 ??? tree nodes created (No per-node statistics) Type hash: size 1021, 598 elements, 0.900368 collisions DECL_DEBUG_EXPR hash: size 8191, 0 elements, 1.140991 collisions DECL_VALUE_EXPR hash: size 1021, 0 elements, 0.000000 collisions Execution times (seconds) garbage collection : 1.84 ( 0%) usr 0.04 ( 0%) sys 2.47 ( 0%) wall 0 kB ( 0%) ggc callgraph construction: 1.79 ( 0%) usr 0.35 ( 0%) sys 2.67 ( 0%) wall 21241 kB ( 2%) ggc callgraph optimization: 0.05 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall 0 kB ( 0%) ggc ipa reference : 0.42 ( 0%) usr 0.14 ( 0%) sys 0.71 ( 0%) wall 7 kB ( 0%) ggc cfg construction : 0.31 ( 0%) usr 0.00 ( 0%) sys 0.48 ( 0%) wall 7224 kB ( 1%) ggc cfg cleanup : 95.98 ( 9%) usr 0.62 ( 0%) sys 125.14 ( 8%) wall 2098 kB ( 0%) ggc trivially dead code : 2.49 ( 0%) usr 0.06 ( 0%) sys 3.46 ( 0%) wall 0 kB ( 0%) ggc life analysis : 5.86 ( 1%) usr 3.35 ( 3%) sys 11.86 ( 1%) wall 18686 kB ( 2%) ggc life info update : 0.95 ( 0%) usr 0.02 ( 0%) sys 1.18 ( 0%) wall 526 kB ( 0%) ggc alias analysis : 1.67 ( 0%) usr 0.03 ( 0%) sys 2.07 ( 0%) wall 16385 kB ( 2%) ggc register scan : 0.93 ( 0%) usr 0.01 ( 0%) sys 1.29 ( 0%) wall 4 kB ( 0%) ggc rebuild jump labels : 0.30 ( 0%) usr 0.00 ( 0%) sys 0.37 ( 0%) wall 0 kB ( 0%) ggc preprocessing : 7.27 ( 1%) usr 13.04 (10%) sys 25.28 ( 2%) wall 2197 kB ( 0%) ggc lexical analysis : 13.10 ( 1%) usr 25.59 (20%) sys 47.58 ( 3%) wall 0 kB ( 0%) ggc parser : 9.44 ( 1%) usr 12.84 (10%) sys 28.21 ( 2%) wall 72677 kB ( 7%) ggc tree gimplify : 1.51 ( 0%) usr 0.08 ( 0%) sys 2.02 ( 0%) wall 30969 kB ( 3%) ggc tree eh : 0.17 ( 0%) usr 0.01 ( 0%) sys 0.22 ( 0%) wall 0 kB ( 0%) ggc tree CFG construction : 0.56 ( 0%) usr 0.14 ( 0%) sys 1.02 ( 0%) wall 76077 kB ( 8%) ggc tree CFG cleanup : 5.77 ( 1%) usr 0.06 ( 0%) sys 7.60 ( 0%) wall 955 kB ( 0%) ggc tree copy propagation : 5.43 ( 0%) usr 0.39 ( 0%) sys 7.83 ( 0%) wall 10484 kB ( 1%) ggc tree store copy prop : 0.73 ( 0%) usr 0.04 ( 0%) sys 0.96 ( 0%) wall 1088 kB ( 0%) ggc tree find ref. vars : 0.21 ( 0%) usr 0.00 ( 0%) sys 0.23 ( 0%) wall 2502 kB ( 0%) ggc tree PTA : 5.49 ( 0%) usr 0.57 ( 0%) sys 7.86 ( 0%) wall 16435 kB ( 2%) ggc tree alias analysis : 6.82 ( 1%) usr 10.23 ( 8%) sys 18.62 ( 1%) wall 12810 kB ( 1%) ggc tree PHI insertion : 1.05 ( 0%) usr 0.21 ( 0%) sys 1.62 ( 0%) wall 24377 kB ( 2%) ggc tree SSA rewrite : 2.50 ( 0%) usr 0.16 ( 0%) sys 3.34 ( 0%) wall 39166 kB ( 4%) ggc tree SSA other : 1.10 ( 0%) usr 1.49 ( 1%) sys 3.69 ( 0%) wall 0 kB ( 0%) ggc tree SSA incremental : 13.99 ( 1%) usr 3.74 ( 3%) sys 22.60 ( 1%) wall 19165 kB ( 2%) ggc tree operand scan : 626.32 (57%) usr 12.24 (10%) sys 833.21 (52%) wall 23910 kB ( 2%) ggc dominator optimization: 6.09 ( 1%) usr 0.35 ( 0%) sys 8.22 ( 1%) wall 63874 kB ( 7%) ggc tree STORE-CCP : 0.67 ( 0%) usr 0.02 ( 0%) sys 0.87 ( 0%) wall 513 kB ( 0%) ggc tree CCP : 0.74 ( 0%) usr 0.02 ( 0%) sys 1.03 ( 0%) wall 514 kB ( 0%) ggc tree split crit edges : 0.37 ( 0%) usr 0.21 ( 0%) sys 0.85 ( 0%) wall 40362 kB ( 4%) ggc tree reassociation : 0.56 ( 0%) usr 0.02 ( 0%) sys 0.69 ( 0%) wall 0 kB ( 0%) ggc tree FRE : 12.83 ( 1%) usr 0.67 ( 1%) sys 17.70 ( 1%) wall 40945 kB ( 4%) ggc tree code sinking : 0.98 ( 0%) usr 0.06 ( 0%) sys 1.45 ( 0%) wall 0 kB ( 0%) ggc tree linearize phis : 0.15 ( 0%) usr 0.00 ( 0%) sys 0.30 ( 0%) wall 0 kB ( 0%) ggc tree forward propagate: 0.16 ( 0%) usr 0.00 ( 0%) sys 0.20 ( 0%) wall 0 kB ( 0%) ggc tree conservative DCE : 1.87 ( 0%) usr 0.03 ( 0%) sys 2.54 ( 0%) wall 0 kB ( 0%) ggc tree aggressive DCE : 0.87 ( 0%) usr 0.01 ( 0%) sys 1.17 ( 0%) wall 0 kB ( 0%) ggc tree DSE : 0.73 ( 0%) usr 0.04 ( 0%) sys 0.91 ( 0%) wall 0 kB ( 0%) ggc PHI merge : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall 49 kB ( 0%) ggc tree loop bounds : 0.35 ( 0%) usr 0.01 ( 0%) sys 0.41 ( 0%) wall 0 kB ( 0%) ggc loop invariant motion : 0.56 ( 0%) usr 0.01 ( 0%) sys 0.72 ( 0%) wall 0 kB ( 0%) ggc tree canonical iv : 0.14 ( 0%) usr 0.00 ( 0%) sys 0.21 ( 0%) wall 0 kB ( 0%) ggc scev constant prop : 1.47 ( 0%) usr 0.04 ( 0%) sys 2.02 ( 0%) wall 1973 kB ( 0%) ggc complete unrolling : 0.08 ( 0%) usr 0.01 ( 0%) sys 0.08 ( 0%) wall 0 kB ( 0%) ggc tree loop init : 5.15 ( 0%) usr 5.40 ( 4%) sys 14.04 ( 1%) wall 58726 kB ( 6%) ggc tree loop fini : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc tree copy headers : 0.24 ( 0%) usr 0.01 ( 0%) sys 0.31 ( 0%) wall 0 kB ( 0%) ggc tree SSA uncprop : 0.44 ( 0%) usr 0.01 ( 0%) sys 0.52 ( 0%) wall 0 kB ( 0%) ggc tree SSA to normal : 171.82 (16%) usr 1.31 ( 1%) sys 224.37 (14%) wall 101554 kB (10%) ggc tree rename SSA copies: 0.60 ( 0%) usr 0.07 ( 0%) sys 1.05 ( 0%) wall 0 kB ( 0%) ggc dominance frontiers : 0.54 ( 0%) usr 0.02 ( 0%) sys 0.67 ( 0%) wall 0 kB ( 0%) ggc expand : 7.37 ( 1%) usr 4.05 ( 3%) sys 14.98 ( 1%) wall 122832 kB (13%) ggc varconst : 0.01 ( 0%) usr 0.01 ( 0%) sys 0.00 ( 0%) wall 7 kB ( 0%) ggc jump : 0.66 ( 0%) usr 0.04 ( 0%) sys 0.88 ( 0%) wall 0 kB ( 0%) ggc CSE : 1.98 ( 0%) usr 1.16 ( 1%) sys 4.00 ( 0%) wall 2442 kB ( 0%) ggc loop analysis : 1.55 ( 0%) usr 0.13 ( 0%) sys 2.17 ( 0%) wall 7001 kB ( 1%) ggc branch prediction : 2.97 ( 0%) usr 0.18 ( 0%) sys 4.00 ( 0%) wall 7022 kB ( 1%) ggc flow analysis : 0.20 ( 0%) usr 0.00 ( 0%) sys 0.38 ( 0%) wall 0 kB ( 0%) ggc combiner : 3.85 ( 0%) usr 0.10 ( 0%) sys 5.14 ( 0%) wall 31575 kB ( 3%) ggc if-conversion : 1.82 ( 0%) usr 0.10 ( 0%) sys 2.31 ( 0%) wall 325 kB ( 0%) ggc local alloc : 2.72 ( 0%) usr 0.11 ( 0%) sys 3.65 ( 0%) wall 13500 kB ( 1%) ggc global alloc : 25.23 ( 2%) usr 21.24 (17%) sys 58.29 ( 4%) wall 30563 kB ( 3%) ggc reload CSE regs : 28.86 ( 3%) usr 0.35 ( 0%) sys 37.86 ( 2%) wall 12947 kB ( 1%) ggc flow 2 : 0.61 ( 0%) usr 0.00 ( 0%) sys 0.91 ( 0%) wall 19 kB ( 0%) ggc if-conversion 2 : 0.68 ( 0%) usr 0.06 ( 0%) sys 0.86 ( 0%) wall 14 kB ( 0%) ggc rename registers : 0.89 ( 0%) usr 0.17 ( 0%) sys 1.46 ( 0%) wall 24 kB ( 0%) ggc scheduling 2 : 3.47 ( 0%) usr 0.18 ( 0%) sys 4.52 ( 0%) wall 35672 kB ( 4%) ggc shorten branches : 0.16 ( 0%) usr 0.00 ( 0%) sys 0.17 ( 0%) wall 0 kB ( 0%) ggc final : 2.08 ( 0%) usr 0.13 ( 0%) sys 2.74 ( 0%) wall 4096 kB ( 0%) ggc symout : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc TOTAL :1106.93 125.15 1593.33 977727 kB -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854