------- Comment #14 from pinskia at gcc dot gnu dot org 2005-10-12 16:12 ------- I have a patch which I am testing which should fix this by reducing the number of referenced variables which in turns reduces virtual operands. Now we get the following -ftime-report for -O2 on powerpc-darwin with cc1plus compiled with -O0 and with checking still enabled, a 40x decrease: garbage collection : 20.72 (10%) usr 0.75 ( 1%) sys 29.13 ( 6%) wall 0 kB ( 0%) ggc callgraph construction: 9.23 ( 5%) usr 1.00 ( 2%) sys 13.52 ( 3%) wall 25403 kB ( 4%) ggc callgraph optimization: 0.10 ( 0%) usr 0.00 ( 0%) sys 0.42 ( 0%) wall 0 kB ( 0%) ggc CFG verifier : 3.70 ( 2%) usr 0.38 ( 1%) sys 6.37 ( 1%) wall 0 kB ( 0%) ggc rebuild jump labels : 0.64 ( 0%) usr 0.18 ( 0%) sys 1.14 ( 0%) wall 0 kB ( 0%) ggc preprocessing : 4.47 ( 2%) usr 6.35 (12%) sys 13.55 ( 3%) wall 2112 kB ( 0%) ggc parser : 64.77 (33%) usr 15.36 (29%) sys 195.42 (37%) wall 299871 kB (42%) ggc name lookup : 22.59 (11%) usr 23.24 (43%) sys 76.74 (15%) wall 16057 kB ( 2%) ggc inline heuristics : 0.24 ( 0%) usr 0.01 ( 0%) sys 0.46 ( 0%) wall 662 kB ( 0%) ggc integration : 0.00 ( 0%) usr 0.02 ( 0%) sys 0.05 ( 0%) wall 0 kB ( 0%) ggc tree gimplify : 20.46 (10%) usr 0.89 ( 2%) sys 41.40 ( 8%) wall 57280 kB ( 8%) ggc tree eh : 0.76 ( 0%) usr 0.15 ( 0%) sys 1.19 ( 0%) wall 4251 kB ( 1%) ggc tree CFG construction : 1.87 ( 1%) usr 0.51 ( 1%) sys 2.91 ( 1%) wall 61517 kB ( 9%) ggc tree CFG cleanup : 2.34 ( 1%) usr 0.44 ( 1%) sys 4.01 ( 1%) wall 36 kB ( 0%) ggc tree STMT verifier : 8.10 ( 4%) usr 0.39 ( 1%) sys 11.28 ( 2%) wall 0 kB ( 0%) ggc expand : 34.94 (18%) usr 2.55 ( 5%) sys 74.96 (14%) wall 240800 kB (34%) ggc varconst : 2.88 ( 1%) usr 1.34 ( 2%) sys 51.80 (10%) wall 2382 kB ( 0%) ggc final : 0.50 ( 0%) usr 0.12 ( 0%) sys 1.10 ( 0%) wall 0 kB ( 0%) ggc symout : 0.00 ( 0%) usr 0.03 ( 0%) sys 0.30 ( 0%) wall 28 kB ( 0%) ggc TOTAL : 198.38 53.88 526.74 711174 kB
It also fixes the C testcase in comment #8 too. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |pinskia at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21304