https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116166
Mark Wielaard <mark at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=116146 --- Comment #27 from Mark Wielaard <mark at gcc dot gnu.org> --- With gcc-15-2794-g5b999997d1a most insn-*.cc files compile in minutes. The only exception is insn-recog.cc which takes 85 minutes (1 hour 25 minutes). Time variable usr sys wall GGC phase setup : 0.07 ( 0%) 0.04 ( 0%) 0.11 ( 0%) 2844k ( 0%) phase parsing : 201.81 ( 4%) 42.93 ( 28%) 245.90 ( 5%) 1189M ( 21%) phase lang. deferred : 0.38 ( 0%) 0.05 ( 0%) 0.43 ( 0%) 2659k ( 0%) phase opt and generate :4774.72 ( 96%) 109.82 ( 72%)4907.10 ( 95%) 4440M ( 79%) phase last asm : 0.03 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 48 ( 0%) |name lookup : 14.27 ( 0%) 2.80 ( 2%) 16.63 ( 0%) 4296k ( 0%) |overload resolution : 36.86 ( 1%) 5.25 ( 3%) 41.14 ( 1%) 135M ( 2%) garbage collection : 14.27 ( 0%) 4.73 ( 3%) 19.06 ( 0%) 0 ( 0%) dump files : 2.16 ( 0%) 0.08 ( 0%) 2.16 ( 0%) 0 ( 0%) callgraph construction : 44.76 ( 1%) 4.36 ( 3%) 49.32 ( 1%) 530M ( 9%) callgraph optimization : 11.08 ( 0%) 2.23 ( 1%) 13.63 ( 0%) 59k ( 0%) callgraph functions expansion :4033.43 ( 81%) 75.70 ( 50%)4128.66 ( 80%) 3151M ( 56%) callgraph ipa passes : 665.59 ( 13%) 31.14 ( 20%) 699.38 ( 14%) 456M ( 8%) ipa function summary : 14.36 ( 0%) 0.28 ( 0%) 14.82 ( 0%) 15M ( 0%) ipa dead code removal : 1.39 ( 0%) 0.02 ( 0%) 1.37 ( 0%) 0 ( 0%) ipa inheritance graph : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 152 ( 0%) ipa devirtualization : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) ipa cp : 7.86 ( 0%) 0.37 ( 0%) 8.33 ( 0%) 9201k ( 0%) ipa inlining heuristics : 7.76 ( 0%) 0.59 ( 0%) 8.24 ( 0%) 28M ( 1%) ipa function splitting : 0.55 ( 0%) 0.03 ( 0%) 0.66 ( 0%) 36k ( 0%) ipa comdats : 0.09 ( 0%) 0.00 ( 0%) 0.08 ( 0%) 0 ( 0%) ipa various optimizations : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) ipa reference : 0.18 ( 0%) 0.00 ( 0%) 0.18 ( 0%) 0 ( 0%) ipa profile : 0.06 ( 0%) 0.00 ( 0%) 0.06 ( 0%) 0 ( 0%) ipa pure const : 4.89 ( 0%) 0.17 ( 0%) 5.00 ( 0%) 9648 ( 0%) ipa icf : 8.30 ( 0%) 1.88 ( 1%) 10.22 ( 0%) 0 ( 0%) ipa SRA : 95.18 ( 2%) 1.04 ( 1%) 96.50 ( 2%) 16M ( 0%) ipa free lang data : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) ipa free inline summary : 0.18 ( 0%) 0.02 ( 0%) 0.20 ( 0%) 0 ( 0%) ipa modref : 8.55 ( 0%) 0.05 ( 0%) 8.62 ( 0%) 3720k ( 0%) cfg construction : 1.83 ( 0%) 0.04 ( 0%) 1.93 ( 0%) 14M ( 0%) cfg cleanup : 54.36 ( 1%) 0.85 ( 1%) 55.83 ( 1%) 23M ( 0%) trivially dead code : 14.16 ( 0%) 0.13 ( 0%) 14.18 ( 0%) 0 ( 0%) df scan insns : 25.06 ( 1%) 0.35 ( 0%) 25.37 ( 0%) 147k ( 0%) df reaching defs : 20.26 ( 0%) 0.17 ( 0%) 20.15 ( 0%) 0 ( 0%) df live regs : 143.04 ( 3%) 2.10 ( 1%) 145.64 ( 3%) 0 ( 0%) df live&initialized regs : 75.37 ( 2%) 0.93 ( 1%) 77.70 ( 2%) 0 ( 0%) df must-initialized regs : 2.80 ( 0%) 0.02 ( 0%) 3.04 ( 0%) 0 ( 0%) df use-def / def-use chains : 9.87 ( 0%) 0.06 ( 0%) 10.06 ( 0%) 0 ( 0%) df reg dead/unused notes : 47.82 ( 1%) 1.04 ( 1%) 48.15 ( 1%) 46M ( 1%) register information : 64.50 ( 1%) 0.88 ( 1%) 66.26 ( 1%) 0 ( 0%) alias analysis : 46.03 ( 1%) 0.51 ( 0%) 47.00 ( 1%) 202M ( 4%) alias stmt walking : 30.76 ( 1%) 1.98 ( 1%) 30.73 ( 1%) 106k ( 0%) register scan : 5.85 ( 0%) 0.09 ( 0%) 6.14 ( 0%) 2405k ( 0%) rebuild jump labels : 5.38 ( 0%) 0.15 ( 0%) 5.76 ( 0%) 96 ( 0%) preprocessing : 13.40 ( 0%) 11.45 ( 7%) 25.81 ( 1%) 245M ( 4%) parser (global) : 19.44 ( 0%) 9.54 ( 6%) 28.47 ( 1%) 362M ( 6%) parser struct body : 1.20 ( 0%) 0.18 ( 0%) 1.29 ( 0%) 5784k ( 0%) parser enumerator list : 0.66 ( 0%) 0.26 ( 0%) 0.88 ( 0%) 7976k ( 0%) parser function body : 151.50 ( 3%) 19.39 ( 13%) 172.99 ( 3%) 539M ( 10%) parser inl. func. body : 1.93 ( 0%) 0.42 ( 0%) 2.36 ( 0%) 9507k ( 0%) parser inl. meth. body : 0.64 ( 0%) 0.09 ( 0%) 0.77 ( 0%) 3852k ( 0%) template instantiation : 2.24 ( 0%) 0.31 ( 0%) 2.31 ( 0%) 10M ( 0%) constant expression evaluation : 8.57 ( 0%) 1.23 ( 1%) 8.77 ( 0%) 7980k ( 0%) early inlining heuristics : 0.68 ( 0%) 0.07 ( 0%) 0.84 ( 0%) 4002k ( 0%) inline parameters : 31.55 ( 1%) 1.44 ( 1%) 32.94 ( 1%) 36M ( 1%) integration : 8.71 ( 0%) 1.90 ( 1%) 10.95 ( 0%) 72M ( 1%) tree gimplify : 42.44 ( 1%) 1.46 ( 1%) 43.95 ( 1%) 374M ( 7%) tree eh : 1.11 ( 0%) 0.07 ( 0%) 0.93 ( 0%) 190k ( 0%) tree CFG construction : 14.24 ( 0%) 0.67 ( 0%) 15.15 ( 0%) 142M ( 3%) tree CFG cleanup : 176.13 ( 4%) 4.53 ( 3%) 182.05 ( 4%) 9894k ( 0%) tree tail merge : 44.68 ( 1%) 0.47 ( 0%) 45.54 ( 1%) 10M ( 0%) tree VRP : 192.47 ( 4%) 3.06 ( 2%) 196.69 ( 4%) 3594k ( 0%) tree Early VRP : 96.27 ( 2%) 1.78 ( 1%) 97.99 ( 2%) 13M ( 0%) warn array bounds : 7.61 ( 0%) 0.23 ( 0%) 7.83 ( 0%) 600 ( 0%) tree copy propagation : 20.83 ( 0%) 0.12 ( 0%) 20.73 ( 0%) 55k ( 0%) tree PTA : 90.67 ( 2%) 1.76 ( 1%) 92.89 ( 2%) 17M ( 0%) tree SSA other : 0.11 ( 0%) 0.07 ( 0%) 0.12 ( 0%) 128k ( 0%) tree SSA rewrite : 9.23 ( 0%) 2.02 ( 1%) 11.28 ( 0%) 93M ( 2%) tree SSA incremental : 16.83 ( 0%) 0.86 ( 1%) 17.78 ( 0%) 32M ( 1%) tree operand scan : 17.74 ( 0%) 2.77 ( 2%) 18.92 ( 0%) 94M ( 2%) dominator optimization : 213.28 ( 4%) 3.44 ( 2%) 218.36 ( 4%) 56M ( 1%) backwards jump threading : 90.52 ( 2%) 2.16 ( 1%) 93.76 ( 2%) 46M ( 1%) tree SRA : 1.10 ( 0%) 0.05 ( 0%) 1.20 ( 0%) 627k ( 0%) isolate eroneous paths : 1.48 ( 0%) 0.00 ( 0%) 1.76 ( 0%) 0 ( 0%) tree CCP : 183.30 ( 4%) 3.36 ( 2%) 187.40 ( 4%) 26M ( 0%) tree split crit edges : 2.34 ( 0%) 0.12 ( 0%) 2.68 ( 0%) 51M ( 1%) tree reassociation : 14.64 ( 0%) 0.48 ( 0%) 15.40 ( 0%) 7866k ( 0%) tree PRE : 112.43 ( 2%) 2.99 ( 2%) 116.25 ( 2%) 61M ( 1%) tree FRE : 221.27 ( 4%) 6.88 ( 5%) 230.52 ( 4%) 31M ( 1%) tree code sinking : 11.74 ( 0%) 0.26 ( 0%) 11.44 ( 0%) 98M ( 2%) tree linearize phis : 9.25 ( 0%) 0.22 ( 0%) 9.30 ( 0%) 8182k ( 0%) tree backward propagate : 1.21 ( 0%) 0.08 ( 0%) 1.30 ( 0%) 0 ( 0%) tree forward propagate : 102.22 ( 2%) 4.62 ( 3%) 107.44 ( 2%) 28M ( 1%) tree phiprop : 0.67 ( 0%) 0.02 ( 0%) 0.76 ( 0%) 0 ( 0%) tree conservative DCE : 10.38 ( 0%) 1.09 ( 1%) 11.85 ( 0%) 347k ( 0%) tree aggressive DCE : 9.43 ( 0%) 0.69 ( 0%) 10.02 ( 0%) 11M ( 0%) tree buildin call DCE : 0.37 ( 0%) 0.01 ( 0%) 0.23 ( 0%) 0 ( 0%) tree DSE : 13.35 ( 0%) 0.14 ( 0%) 13.90 ( 0%) 2185k ( 0%) PHI merge : 8.07 ( 0%) 0.17 ( 0%) 8.32 ( 0%) 75M ( 1%) loopless fn : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) tree loop invariant motion : 0.12 ( 0%) 0.00 ( 0%) 0.08 ( 0%) 0 ( 0%) complete unrolling : 0.67 ( 0%) 0.04 ( 0%) 0.70 ( 0%) 1957k ( 0%) tree slp vectorization : 48.85 ( 1%) 0.71 ( 0%) 49.97 ( 1%) 105M ( 2%) tree loop distribution : 0.02 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) tree iv optimization : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) tree copy headers : 0.16 ( 0%) 0.00 ( 0%) 0.21 ( 0%) 1650k ( 0%) tree SSA uncprop : 5.00 ( 0%) 0.03 ( 0%) 4.93 ( 0%) 0 ( 0%) tree NRV optimization : 0.03 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 73k ( 0%) tree switch conversion : 0.29 ( 0%) 0.00 ( 0%) 0.32 ( 0%) 12k ( 0%) tree switch lowering : 12.54 ( 0%) 0.19 ( 0%) 12.52 ( 0%) 9840k ( 0%) gimple CSE sin/cos : 0.23 ( 0%) 0.00 ( 0%) 0.23 ( 0%) 0 ( 0%) gimple expand pow : 0.28 ( 0%) 0.01 ( 0%) 0.32 ( 0%) 0 ( 0%) gimple widening/fma detection : 1.30 ( 0%) 0.01 ( 0%) 1.31 ( 0%) 4304 ( 0%) tree strlen optimization : 3.14 ( 0%) 0.11 ( 0%) 3.25 ( 0%) 1650k ( 0%) tree modref : 17.07 ( 0%) 0.42 ( 0%) 17.48 ( 0%) 3924k ( 0%) dominance frontiers : 2.40 ( 0%) 0.03 ( 0%) 2.31 ( 0%) 0 ( 0%) dominance computation : 42.96 ( 1%) 1.32 ( 1%) 44.22 ( 1%) 0 ( 0%) control dependences : 0.86 ( 0%) 0.01 ( 0%) 1.14 ( 0%) 0 ( 0%) out of ssa : 7.51 ( 0%) 0.31 ( 0%) 7.75 ( 0%) 496k ( 0%) expand vars : 2.09 ( 0%) 0.10 ( 0%) 2.29 ( 0%) 35M ( 1%) expand : 61.39 ( 1%) 1.28 ( 1%) 63.15 ( 1%) 435M ( 8%) post expand cleanups : 5.77 ( 0%) 0.13 ( 0%) 5.83 ( 0%) 10M ( 0%) varconst : 0.14 ( 0%) 0.02 ( 0%) 0.12 ( 0%) 4736 ( 0%) lower subreg : 0.27 ( 0%) 0.00 ( 0%) 0.42 ( 0%) 32k ( 0%) jump : 0.06 ( 0%) 0.00 ( 0%) 0.07 ( 0%) 0 ( 0%) forward prop : 88.69 ( 2%) 1.83 ( 1%) 91.11 ( 2%) 9609k ( 0%) CSE : 132.51 ( 3%) 1.59 ( 1%) 134.71 ( 3%) 22M ( 0%) dead code elimination : 11.19 ( 0%) 0.12 ( 0%) 11.24 ( 0%) 0 ( 0%) dead store elim1 : 16.56 ( 0%) 0.31 ( 0%) 16.77 ( 0%) 28M ( 1%) dead store elim2 : 20.72 ( 0%) 0.54 ( 0%) 21.41 ( 0%) 37M ( 1%) loop analysis : 0.07 ( 0%) 0.00 ( 0%) 0.08 ( 0%) 0 ( 0%) loop init : 27.46 ( 1%) 0.43 ( 0%) 28.37 ( 1%) 7214k ( 0%) loop invariant motion : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) loop fini : 0.80 ( 0%) 0.04 ( 0%) 0.59 ( 0%) 0 ( 0%) CPROP : 98.14 ( 2%) 1.92 ( 1%) 100.95 ( 2%) 262M ( 5%) PRE : 42.88 ( 1%) 1.09 ( 1%) 44.10 ( 1%) 9792k ( 0%) auto inc dec : 2.52 ( 0%) 0.10 ( 0%) 2.67 ( 0%) 36k ( 0%) CSE 2 : 64.22 ( 1%) 0.64 ( 0%) 65.41 ( 1%) 12M ( 0%) branch prediction : 10.67 ( 0%) 0.36 ( 0%) 11.46 ( 0%) 337k ( 0%) combiner : 300.17 ( 6%) 3.36 ( 2%) 304.85 ( 6%) 425M ( 8%) if-conversion : 25.07 ( 1%) 0.27 ( 0%) 25.71 ( 0%) 6340k ( 0%) mode switching : 0.03 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) scheduling : 491.00 ( 10%) 5.34 ( 3%) 498.79 ( 10%) 44M ( 1%) early rematerialization : 0.03 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 0 ( 0%) integrated RA : 119.97 ( 2%) 1.68 ( 1%) 122.07 ( 2%) 374M ( 7%) LRA non-specific : 37.88 ( 1%) 0.27 ( 0%) 38.08 ( 1%) 10047k ( 0%) LRA virtuals elimination : 5.95 ( 0%) 0.06 ( 0%) 6.45 ( 0%) 1570k ( 0%) LRA reload inheritance : 9.36 ( 0%) 0.39 ( 0%) 9.84 ( 0%) 6100k ( 0%) LRA create live ranges : 25.13 ( 1%) 0.21 ( 0%) 25.54 ( 0%) 5299k ( 0%) LRA hard reg assignment : 4.63 ( 0%) 0.17 ( 0%) 4.69 ( 0%) 0 ( 0%) LRA rematerialization : 3.61 ( 0%) 0.08 ( 0%) 3.57 ( 0%) 0 ( 0%) reload : 0.79 ( 0%) 0.00 ( 0%) 0.87 ( 0%) 44k ( 0%) reload CSE regs : 56.34 ( 1%) 0.80 ( 1%) 57.30 ( 1%) 38M ( 1%) ree : 4.83 ( 0%) 0.02 ( 0%) 4.73 ( 0%) 29k ( 0%) thread pro- & epilogue : 64.91 ( 1%) 0.58 ( 0%) 65.81 ( 1%) 65M ( 1%) if-conversion 2 : 1.88 ( 0%) 0.01 ( 0%) 1.77 ( 0%) 0 ( 0%) peephole 2 : 4.78 ( 0%) 0.03 ( 0%) 4.40 ( 0%) 0 ( 0%) hard reg cprop : 11.63 ( 0%) 0.57 ( 0%) 12.27 ( 0%) 79k ( 0%) scheduling 2 : 98.90 ( 2%) 1.16 ( 1%) 100.28 ( 2%) 1415k ( 0%) reorder blocks : 12.49 ( 0%) 0.22 ( 0%) 12.84 ( 0%) 32M ( 1%) shorten branches : 7.99 ( 0%) 0.26 ( 0%) 8.39 ( 0%) 0 ( 0%) final : 23.59 ( 0%) 0.66 ( 0%) 24.54 ( 0%) 66M ( 1%) symout : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) tree if-combine : 0.81 ( 0%) 0.15 ( 0%) 1.17 ( 0%) 37k ( 0%) if to switch conversion : 2.50 ( 0%) 0.06 ( 0%) 2.48 ( 0%) 5360 ( 0%) uninit var analysis : 5.28 ( 0%) 0.71 ( 0%) 6.15 ( 0%) 0 ( 0%) straight-line strength reduction : 3.70 ( 0%) 0.07 ( 0%) 3.61 ( 0%) 34k ( 0%) store merging : 1.55 ( 0%) 0.11 ( 0%) 1.56 ( 0%) 330k ( 0%) initialize rtl : 0.13 ( 0%) 0.00 ( 0%) 0.15 ( 0%) 18k ( 0%) address lowering : 0.13 ( 0%) 0.01 ( 0%) 0.10 ( 0%) 0 ( 0%) access analysis : 12.90 ( 0%) 0.58 ( 0%) 13.82 ( 0%) 288 ( 0%) early local passes : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) unaccounted optimizations : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) rest of compilation : 143.97 ( 3%) 2.06 ( 1%) 145.49 ( 3%) 62M ( 1%) unaccounted post reload : 0.00 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 0 ( 0%) unaccounted late compilation : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) remove unused locals : 8.25 ( 0%) 0.75 ( 0%) 9.27 ( 0%) 0 ( 0%) address taken : 9.41 ( 0%) 0.36 ( 0%) 9.82 ( 0%) 0 ( 0%) rebuild frequencies : 0.45 ( 0%) 0.01 ( 0%) 0.42 ( 0%) 0 ( 0%) repair loop structures : 0.49 ( 0%) 0.02 ( 0%) 0.39 ( 0%) 0 ( 0%) TOTAL :4977.01 152.84 5153.57 5635M It is one large (19MB) file on risc-v. There is a bug #116146 to split it up.