From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23257 invoked by alias); 8 Dec 2006 01:24:19 -0000 Received: (qmail 23211 invoked by alias); 8 Dec 2006 01:24:07 -0000 Date: Fri, 08 Dec 2006 01:24:00 -0000 Message-ID: <20061208012407.23210.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/26854] Inordinate compile times on large routines In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "lucier at math dot purdue dot edu" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2006-12/txt/msg00666.txt.bz2 ------- Comment #22 from lucier at math dot purdue dot edu 2006-12-08 01:24 ------- Subject: Re: Inordinate compile times on large routines And here's the same data for 4.2.0 branch; Dan, your changes have clearly helped a lot. It seems to take about 5% more memory at the maximum, though, on 4.3.0 (6.9GB vs 6.6GB); but both these numbers are just from visual inspection of "top" as things were running, so they are likely not accurate. Brad euler-56% time /pkgs/gcc-4.2.0-test/bin/gcc -no-cpp-precomp -Wall -W -Wno-unused -O1 -fno-math-errno -fschedule-insns2 -fno-trapping-math - fno-strict-aliasing -fwrapv -fomit-frame-pointer -fPIC -fno-common - ftime-report -fmem-report -c all.i gcc: unrecognized option '-no-cpp-precomp' Memory still allocated at the end of the compilation process Size Allocated Used Overhead 8 16k 13k 480 16 8556k 7998k 183k 64 36M 22M 587k 256 4096 2816 56 512 4096 1536 56 1024 224k 222k 3136 2048 40k 26k 560 4096 76k 76k 1064 8192 64k 64k 448 16384 16k 16k 56 32768 64k 64k 112 65536 704k 704k 616 131072 512k 512k 224 262144 768k 768k 168 1048576 6144k 5120k 336 2097152 2048k 2048k 56 112 144k 92k 2016 208 44k 40k 616 192 14M 10M 209k 160 40k 37k 560 176 7996k 4802k 109k 96 19M 16M 267k 416 28k 23k 392 128 10M 7187k 142k 48 18M 9508k 302k 224 420k 384k 5880 32 71M 71M 1279k 80 62M 46M 880k Total 261M 205M 3979k String pool entries 125047 identifiers 125047 (100.00%) slots 262144 bytes 1675k (137k overhead) table size 2048k coll/search 0.8967 ins/search 0.1974 avg. entry 13.72 bytes (+/- 8.99) longest entry 71 ??? tree nodes created (No per-node statistics) Type hash: size 1021, 573 elements, 0.687728 collisions DECL_DEBUG_EXPR hash: size 8191, 2981 elements, 0.983076 collisions DECL_VALUE_EXPR hash: size 1021, 0 elements, 0.000000 collisions Execution times (seconds) garbage collection : 1.10 ( 0%) usr 0.00 ( 0%) sys 1.10 ( 0%) wall 0 kB ( 0%) ggc callgraph construction: 0.60 ( 0%) usr 0.12 ( 1%) sys 0.74 ( 0%) wall 17017 kB ( 2%) ggc callgraph optimization: 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall 0 kB ( 0%) ggc ipa reference : 0.17 ( 0%) usr 0.05 ( 0%) sys 0.25 ( 0%) wall 7 kB ( 0%) ggc cfg cleanup : 7.68 ( 0%) usr 0.00 ( 0%) sys 7.69 ( 0%) wall 38 kB ( 0%) ggc trivially dead code : 1.13 ( 0%) usr 0.00 ( 0%) sys 1.10 ( 0%) wall 0 kB ( 0%) ggc life analysis : 20.05 ( 1%) usr 0.01 ( 0%) sys 20.10 ( 1%) wall 12032 kB ( 2%) ggc life info update : 0.61 ( 0%) usr 0.00 ( 0%) sys 0.61 ( 0%) wall 0 kB ( 0%) ggc alias analysis : 0.92 ( 0%) usr 0.00 ( 0%) sys 0.89 ( 0%) wall 7174 kB ( 1%) ggc register scan : 0.51 ( 0%) usr 0.00 ( 0%) sys 0.50 ( 0%) wall 1 kB ( 0%) ggc rebuild jump labels : 0.21 ( 0%) usr 0.00 ( 0%) sys 0.20 ( 0%) wall 0 kB ( 0%) ggc preprocessing : 0.63 ( 0%) usr 0.92 ( 8%) sys 1.50 ( 0%) wall 1794 kB ( 0%) ggc lexical analysis : 0.61 ( 0%) usr 1.67 (14%) sys 2.39 ( 0%) wall 0 kB ( 0%) ggc parser : 1.27 ( 0%) usr 0.82 ( 7%) sys 2.30 ( 0%) wall 59584 kB ( 8%) ggc integration : 0.27 ( 0%) usr 0.10 ( 1%) sys 0.39 ( 0%) wall 0 kB ( 0%) ggc tree gimplify : 0.68 ( 0%) usr 0.02 ( 0%) sys 0.75 ( 0%) wall 23041 kB ( 3%) ggc tree eh : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.10 ( 0%) wall 0 kB ( 0%) ggc tree CFG construction : 0.32 ( 0%) usr 0.06 ( 0%) sys 0.40 ( 0%) wall 59313 kB ( 8%) ggc tree CFG cleanup : 4.18 ( 0%) usr 0.00 ( 0%) sys 4.20 ( 0%) wall 3716 kB ( 1%) ggc tree copy propagation : 1.51 ( 0%) usr 0.01 ( 0%) sys 1.55 ( 0%) wall 2219 kB ( 0%) ggc tree store copy prop : 0.50 ( 0%) usr 0.00 ( 0%) sys 0.51 ( 0%) wall 576 kB ( 0%) ggc tree find ref. vars : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.13 ( 0%) wall 1186 kB ( 0%) ggc tree PTA : 857.74 (53%) usr 0.47 ( 4%) sys 859.20 (53%) wall 2331 kB ( 0%) ggc tree alias analysis : 383.35 (24%) usr 0.64 ( 5%) sys 385.19 (24%) wall 15963 kB ( 2%) ggc tree PHI insertion : 1.57 ( 0%) usr 0.10 ( 1%) sys 1.75 ( 0%) wall 69532 kB (10%) ggc tree SSA rewrite : 3.05 ( 0%) usr 0.03 ( 0%) sys 3.07 ( 0%) wall 28127 kB ( 4%) ggc tree SSA other : 0.18 ( 0%) usr 0.10 ( 1%) sys 0.26 ( 0%) wall 0 kB ( 0%) ggc tree SSA incremental : 9.45 ( 1%) usr 0.07 ( 1%) sys 9.53 ( 1%) wall 20443 kB ( 3%) ggc tree operand scan : 6.22 ( 0%) usr 0.53 ( 4%) sys 7.09 ( 0%) wall 26490 kB ( 4%) ggc dominator optimization: 3.86 ( 0%) usr 0.05 ( 0%) sys 3.92 ( 0%) wall 48855 kB ( 7%) ggc tree STORE-CCP : 0.47 ( 0%) usr 0.00 ( 0%) sys 0.47 ( 0%) wall 8 kB ( 0%) ggc tree CCP : 0.63 ( 0%) usr 0.00 ( 0%) sys 0.63 ( 0%) wall 16 kB ( 0%) ggc tree PHI const/copy prop: 0.25 ( 0%) usr 0.00 ( 0%) sys 0.26 ( 0%) wall 9 kB ( 0%) ggc tree split crit edges : 0.12 ( 0%) usr 0.04 ( 0%) sys 0.17 ( 0%) wall 27005 kB ( 4%) ggc tree reassociation : 0.53 ( 0%) usr 0.00 ( 0%) sys 0.53 ( 0%) wall 0 kB ( 0%) ggc tree FRE : 181.71 (11%) usr 0.02 ( 0%) sys 181.71 (11%) wall 18940 kB ( 3%) ggc tree code sinking : 0.57 ( 0%) usr 0.00 ( 0%) sys 0.58 ( 0%) wall 0 kB ( 0%) ggc tree linearize phis : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.13 ( 0%) wall 0 kB ( 0%) ggc tree forward propagate: 0.14 ( 0%) usr 0.00 ( 0%) sys 0.15 ( 0%) wall 0 kB ( 0%) ggc tree conservative DCE : 1.32 ( 0%) usr 0.00 ( 0%) sys 1.31 ( 0%) wall 0 kB ( 0%) ggc tree aggressive DCE : 0.52 ( 0%) usr 0.00 ( 0%) sys 0.51 ( 0%) wall 0 kB ( 0%) ggc tree DSE : 0.41 ( 0%) usr 0.00 ( 0%) sys 0.40 ( 0%) wall 1 kB ( 0%) ggc PHI merge : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 2 kB ( 0%) ggc tree loop bounds : 0.24 ( 0%) usr 0.00 ( 0%) sys 0.23 ( 0%) wall 0 kB ( 0%) ggc loop invariant motion : 0.37 ( 0%) usr 0.00 ( 0%) sys 0.37 ( 0%) wall 0 kB ( 0%) ggc tree canonical iv : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall 0 kB ( 0%) ggc scev constant prop : 0.67 ( 0%) usr 0.00 ( 0%) sys 0.66 ( 0%) wall 1756 kB ( 0%) ggc complete unrolling : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall 0 kB ( 0%) ggc tree iv optimization : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc tree loop init : 2.35 ( 0%) usr 0.08 ( 1%) sys 2.47 ( 0%) wall 45903 kB ( 6%) ggc tree copy headers : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.13 ( 0%) wall 1 kB ( 0%) ggc tree SSA uncprop : 0.27 ( 0%) usr 0.00 ( 0%) sys 0.26 ( 0%) wall 0 kB ( 0%) ggc tree SSA to normal : 56.18 ( 4%) usr 0.05 ( 0%) sys 56.26 ( 3%) wall 55617 kB ( 8%) ggc tree rename SSA copies: 0.45 ( 0%) usr 0.00 ( 0%) sys 0.45 ( 0%) wall 0 kB ( 0%) ggc dominance frontiers : 0.49 ( 0%) usr 0.00 ( 0%) sys 0.51 ( 0%) wall 0 kB ( 0%) ggc dominance computation : 2.43 ( 0%) usr 0.01 ( 0%) sys 2.39 ( 0%) wall 0 kB ( 0%) ggc expand : 7.24 ( 0%) usr 0.08 ( 1%) sys 7.44 ( 0%) wall 95504 kB (13%) ggc jump : 0.11 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 0%) wall 0 kB ( 0%) ggc CSE : 0.82 ( 0%) usr 0.00 ( 0%) sys 0.83 ( 0%) wall 1108 kB ( 0%) ggc loop analysis : 18.66 ( 1%) usr 5.45 (45%) sys 24.87 ( 2%) wall 5844 kB ( 1%) ggc branch prediction : 0.92 ( 0%) usr 0.01 ( 0%) sys 0.93 ( 0%) wall 1532 kB ( 0%) ggc flow analysis : 0.17 ( 0%) usr 0.00 ( 0%) sys 0.15 ( 0%) wall 0 kB ( 0%) ggc combiner : 1.60 ( 0%) usr 0.02 ( 0%) sys 1.63 ( 0%) wall 19153 kB ( 3%) ggc if-conversion : 0.63 ( 0%) usr 0.01 ( 0%) sys 0.65 ( 0%) wall 365 kB ( 0%) ggc mode switching : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc local alloc : 1.32 ( 0%) usr 0.01 ( 0%) sys 1.32 ( 0%) wall 5154 kB ( 1%) ggc global alloc : 7.14 ( 0%) usr 0.37 ( 3%) sys 7.57 ( 0%) wall 9514 kB ( 1%) ggc reload CSE regs : 0.82 ( 0%) usr 0.00 ( 0%) sys 0.83 ( 0%) wall 11516 kB ( 2%) ggc flow 2 : 0.40 ( 0%) usr 0.00 ( 0%) sys 0.41 ( 0%) wall 2940 kB ( 0%) ggc if-conversion 2 : 0.23 ( 0%) usr 0.00 ( 0%) sys 0.25 ( 0%) wall 1 kB ( 0%) ggc rename registers : 0.58 ( 0%) usr 0.03 ( 0%) sys 0.60 ( 0%) wall 15 kB ( 0%) ggc scheduling 2 : 2.33 ( 0%) usr 0.03 ( 0%) sys 2.38 ( 0%) wall 10644 kB ( 1%) ggc machine dep reorg : 0.49 ( 0%) usr 0.00 ( 0%) sys 0.49 ( 0%) wall 91 kB ( 0%) ggc final : 1.23 ( 0%) usr 0.02 ( 0%) sys 1.25 ( 0%) wall 2050 kB ( 0%) ggc TOTAL :1604.05 12.16 1620.25 716501 kB 1604.799u 13.117s 27:05.13 99.5% 0+0k 0+0io 0pf+0w euler-57% /pkgs/gcc-4.2.0-test/bin/gcc -v Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ../configure --prefix=/pkgs/gcc-4.2.0-test --with- gmp=/pkgs/gmp-4.2.1 --with-mpfr=/pkgs/gmp-4.2.1 --enable-checking=no --enable-languages=c Thread model: posix gcc version 4.2.0 20061207 (prerelease) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854