------- Additional Comments From steven at gcc dot gnu dot org 2004-12-21 08:38 ------- This is what I get (with checking enabled) for an C5 with two C4s with "GNU C version 4.0.0 20041220 (experimental) (x86_64-unknown-linux-gnu)": $ ./cc1 t.c -O2 a {GC 14385k -> 11467k} Analyzing compilation unit Performing intraprocedural optimizations Assembling functions: a {GC 68010k -> 54166k} {GC 74855k -> 56923k} {GC 91181k -> 71784k} {GC 99265k -> 71726k} Execution times (seconds) garbage collection : 0.77 ( 0%) usr 0.01 ( 0%) sys 0.77 ( 0%) wall callgraph construction: 3.03 ( 2%) usr 0.06 ( 2%) sys 3.09 ( 2%) wall cfg construction : 0.08 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall cfg cleanup : 1.55 ( 1%) usr 0.00 ( 0%) sys 1.52 ( 1%) wall CFG verifier : 3.63 ( 2%) usr 0.04 ( 2%) sys 3.65 ( 2%) wall trivially dead code : 0.23 ( 0%) usr 0.00 ( 0%) sys 0.23 ( 0%) wall life analysis : 0.84 ( 0%) usr 0.00 ( 0%) sys 0.84 ( 0%) wall life info update : 0.29 ( 0%) usr 0.00 ( 0%) sys 0.29 ( 0%) wall alias analysis : 0.22 ( 0%) usr 0.00 ( 0%) sys 0.24 ( 0%) wall register scan : 0.15 ( 0%) usr 0.00 ( 0%) sys 0.17 ( 0%) wall rebuild jump labels : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall preprocessing : 0.17 ( 0%) usr 0.07 ( 3%) sys 0.34 ( 0%) wall lexical analysis : 0.09 ( 0%) usr 0.19 ( 8%) sys 0.26 ( 0%) wall parser : 0.35 ( 0%) usr 0.10 ( 4%) sys 0.44 ( 0%) wall tree gimplify : 0.10 ( 0%) usr 0.01 ( 0%) sys 0.11 ( 0%) wall tree eh : 0.05 ( 0%) usr 0.01 ( 0%) sys 0.05 ( 0%) wall tree CFG construction : 0.17 ( 0%) usr 0.03 ( 1%) sys 0.20 ( 0%) wall tree CFG cleanup : 0.85 ( 0%) usr 0.00 ( 0%) sys 0.89 ( 1%) wall tree find referenced vars: 0.02 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall tree PTA : 0.19 ( 0%) usr 0.01 ( 0%) sys 0.19 ( 0%) wall tree alias analysis : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall tree PHI insertion : 0.08 ( 0%) usr 0.01 ( 0%) sys 0.08 ( 0%) wall tree SSA rewrite : 0.35 ( 0%) usr 0.00 ( 0%) sys 0.37 ( 0%) wall tree SSA other : 0.58 ( 0%) usr 0.17 ( 7%) sys 0.65 ( 0%) wall tree operand scan : 0.19 ( 0%) usr 0.10 ( 4%) sys 0.38 ( 0%) wall dominator optimization: 2.12 ( 1%) usr 0.03 ( 1%) sys 2.16 ( 1%) wall tree CCP : 0.17 ( 0%) usr 0.00 ( 0%) sys 0.17 ( 0%) wall tree split crit edges : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall tree PRE : 0.20 ( 0%) usr 0.01 ( 0%) sys 0.21 ( 0%) wall tree remove redundant PHIs: 0.23 ( 0%) usr 0.00 ( 0%) sys 0.24 ( 0%) wall tree linearize phis : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall tree forward propagate: 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall tree conservative DCE : 0.19 ( 0%) usr 0.00 ( 0%) sys 0.21 ( 0%) wall tree aggressive DCE : 0.15 ( 0%) usr 0.00 ( 0%) sys 0.15 ( 0%) wall tree DSE : 0.32 ( 0%) usr 0.00 ( 0%) sys 0.32 ( 0%) wall tree loop init : 0.10 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall tree copy headers : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 0%) wall tree SSA to normal : 0.20 ( 0%) usr 0.00 ( 0%) sys 0.20 ( 0%) wall tree rename SSA copies: 0.02 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall tree SSA verifier : 1.99 ( 1%) usr 0.00 ( 0%) sys 1.95 ( 1%) wall tree STMT verifier : 0.43 ( 0%) usr 0.02 ( 1%) sys 0.44 ( 0%) wall callgraph verifier : 8.76 ( 5%) usr 0.05 ( 2%) sys 8.81 ( 5%) wall dominance frontiers : 0.10 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall control dependences : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall expand : 1.09 ( 1%) usr 0.03 ( 1%) sys 1.20 ( 1%) wall jump : 0.20 ( 0%) usr 0.00 ( 0%) sys 0.22 ( 0%) wall CSE : 9.12 ( 5%) usr 0.00 ( 0%) sys 9.12 ( 5%) wall loop analysis : 0.30 ( 0%) usr 0.00 ( 0%) sys 0.28 ( 0%) wall global CSE : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall CPROP 1 : 55.78 (33%) usr 0.57 (23%) sys 56.38 (32%) wall PRE : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.07 ( 0%) wall CPROP 2 : 28.46 (17%) usr 0.41 (17%) sys 28.91 (17%) wall bypass jumps : 28.96 (17%) usr 0.40 (16%) sys 29.39 (17%) wall CSE 2 : 8.25 ( 5%) usr 0.00 ( 0%) sys 8.25 ( 5%) wall branch prediction : 0.95 ( 1%) usr 0.01 ( 0%) sys 0.95 ( 1%) wall flow analysis : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.10 ( 0%) wall combiner : 0.36 ( 0%) usr 0.01 ( 0%) sys 0.38 ( 0%) wall if-conversion : 0.45 ( 0%) usr 0.00 ( 0%) sys 0.48 ( 0%) wall regmove : 0.14 ( 0%) usr 0.00 ( 0%) sys 0.14 ( 0%) wall local alloc : 0.26 ( 0%) usr 0.00 ( 0%) sys 0.26 ( 0%) wall global alloc : 0.55 ( 0%) usr 0.02 ( 1%) sys 0.58 ( 0%) wall reload CSE regs : 3.45 ( 2%) usr 0.00 ( 0%) sys 3.46 ( 2%) wall flow 2 : 0.10 ( 0%) usr 0.00 ( 0%) sys 0.10 ( 0%) wall if-conversion 2 : 0.30 ( 0%) usr 0.00 ( 0%) sys 0.30 ( 0%) wall peephole 2 : 0.20 ( 0%) usr 0.00 ( 0%) sys 0.20 ( 0%) wall rename registers : 0.93 ( 1%) usr 0.02 ( 1%) sys 0.98 ( 1%) wall scheduling 2 : 1.07 ( 1%) usr 0.02 ( 1%) sys 1.13 ( 1%) wall machine dep reorg : 0.14 ( 0%) usr 0.00 ( 0%) sys 0.14 ( 0%) wall reorder blocks : 0.31 ( 0%) usr 0.00 ( 0%) sys 0.31 ( 0%) wall shorten branches : 0.11 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 0%) wall final : 0.18 ( 0%) usr 0.01 ( 0%) sys 0.19 ( 0%) wall rest of compilation : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall TOTAL : 171.18 2.43 174.57 My bet: known non-linear behavior in compute_transp. I'm curous why gcse's "is_too_expensive ()" thinks GCSE is _not_ too expensive for this test case.
-- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed| |1 Last reconfirmed|0000-00-00 00:00:00 |2004-12-21 08:38:15 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19097