https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116166
--- Comment #26 from Mark Wielaard <mark at gcc dot gnu.org> --- With gcc-15-2791-g2083389a18d native build of the preprocessed insn-emit-96.cc from attachment #1 goes from 6 hours to 5 minutes. Time variable usr sys wall GGC phase setup : 0.04 ( 0%) 0.02 ( 0%) 0.05 ( 0%) 2844k ( 0%) phase parsing : 11.98 ( 4%) 10.66 ( 47%) 22.73 ( 7%) 306M ( 47%) phase lang. deferred : 0.20 ( 0%) 0.01 ( 0%) 0.22 ( 0%) 2970k ( 0%) phase opt and generate : 278.46 ( 96%) 11.75 ( 52%) 291.62 ( 93%) 346M ( 53%) phase last asm : 0.01 ( 0%) 0.01 ( 0%) 0.02 ( 0%) 69k ( 0%) phase finalize : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) |name lookup : 2.16 ( 1%) 1.64 ( 7%) 3.94 ( 1%) 4335k ( 1%) |overload resolution : 2.15 ( 1%) 1.33 ( 6%) 3.28 ( 1%) 30M ( 5%) garbage collection : 0.92 ( 0%) 1.84 ( 8%) 2.76 ( 1%) 0 ( 0%) dump files : 0.85 ( 0%) 0.18 ( 1%) 1.02 ( 0%) 0 ( 0%) callgraph construction : 0.46 ( 0%) 0.04 ( 0%) 0.54 ( 0%) 4404k ( 1%) callgraph optimization : 0.41 ( 0%) 0.06 ( 0%) 0.53 ( 0%) 108k ( 0%) callgraph functions expansion : 261.74 ( 90%) 10.47 ( 47%) 273.55 ( 87%) 264M ( 40%) callgraph ipa passes : 15.34 ( 5%) 1.17 ( 5%) 16.57 ( 5%) 29M ( 4%) ipa function summary : 0.34 ( 0%) 0.02 ( 0%) 0.31 ( 0%) 1513k ( 0%) ipa dead code removal : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) ipa inheritance graph : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 152 ( 0%) ipa devirtualization : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) ipa cp : 0.15 ( 0%) 0.02 ( 0%) 0.19 ( 0%) 695k ( 0%) ipa inlining heuristics : 0.10 ( 0%) 0.10 ( 0%) 0.26 ( 0%) 345k ( 0%) ipa function splitting : 0.21 ( 0%) 0.00 ( 0%) 0.14 ( 0%) 52k ( 0%) ipa comdats : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) ipa various optimizations : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) ipa reference : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) ipa pure const : 0.15 ( 0%) 0.02 ( 0%) 0.15 ( 0%) 0 ( 0%) ipa icf : 0.11 ( 0%) 0.00 ( 0%) 0.11 ( 0%) 0 ( 0%) ipa SRA : 0.14 ( 0%) 0.00 ( 0%) 0.15 ( 0%) 137k ( 0%) ipa free lang data : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) ipa modref : 0.11 ( 0%) 0.00 ( 0%) 0.12 ( 0%) 541k ( 0%) cfg construction : 0.35 ( 0%) 0.10 ( 0%) 0.40 ( 0%) 11M ( 2%) cfg cleanup : 3.59 ( 1%) 0.10 ( 0%) 3.81 ( 1%) 2215k ( 0%) trivially dead code : 0.55 ( 0%) 0.04 ( 0%) 0.53 ( 0%) 0 ( 0%) df scan insns : 0.46 ( 0%) 0.06 ( 0%) 0.43 ( 0%) 88k ( 0%) df reaching defs : 0.81 ( 0%) 0.06 ( 0%) 0.82 ( 0%) 0 ( 0%) df live regs : 4.37 ( 2%) 0.27 ( 1%) 4.54 ( 1%) 0 ( 0%) df live&initialized regs : 2.34 ( 1%) 0.08 ( 0%) 2.54 ( 1%) 0 ( 0%) df must-initialized regs : 0.18 ( 0%) 0.00 ( 0%) 0.16 ( 0%) 0 ( 0%) df use-def / def-use chains : 0.32 ( 0%) 0.02 ( 0%) 0.37 ( 0%) 0 ( 0%) df reg dead/unused notes : 2.11 ( 1%) 0.11 ( 0%) 2.07 ( 1%) 2691k ( 0%) register information : 1.09 ( 0%) 0.14 ( 1%) 1.24 ( 0%) 0 ( 0%) alias analysis : 1.64 ( 1%) 0.10 ( 0%) 1.91 ( 1%) 9836k ( 1%) alias stmt walking : 0.16 ( 0%) 0.05 ( 0%) 0.15 ( 0%) 0 ( 0%) register scan : 0.13 ( 0%) 0.01 ( 0%) 0.16 ( 0%) 59k ( 0%) rebuild jump labels : 0.33 ( 0%) 0.02 ( 0%) 0.24 ( 0%) 0 ( 0%) preprocessing : 0.98 ( 0%) 2.08 ( 9%) 3.00 ( 1%) 26M ( 4%) parser (global) : 3.80 ( 1%) 4.47 ( 20%) 8.31 ( 3%) 175M ( 27%) parser struct body : 0.32 ( 0%) 0.09 ( 0%) 0.38 ( 0%) 6856k ( 1%) parser enumerator list : 0.22 ( 0%) 0.22 ( 1%) 0.46 ( 0%) 8060k ( 1%) parser function body : 4.28 ( 1%) 2.47 ( 11%) 7.02 ( 2%) 61M ( 9%) parser inl. func. body : 0.78 ( 0%) 0.36 ( 2%) 1.23 ( 0%) 12M ( 2%) parser inl. meth. body : 0.23 ( 0%) 0.09 ( 0%) 0.33 ( 0%) 3821k ( 1%) template instantiation : 1.15 ( 0%) 0.63 ( 3%) 1.63 ( 1%) 16M ( 2%) constant expression evaluation : 0.37 ( 0%) 0.18 ( 1%) 0.45 ( 0%) 192k ( 0%) early inlining heuristics : 0.04 ( 0%) 0.00 ( 0%) 0.17 ( 0%) 950k ( 0%) inline parameters : 0.68 ( 0%) 0.09 ( 0%) 0.73 ( 0%) 2386k ( 0%) integration : 0.37 ( 0%) 0.12 ( 1%) 0.44 ( 0%) 4810k ( 1%) tree gimplify : 0.48 ( 0%) 0.06 ( 0%) 0.51 ( 0%) 28M ( 4%) tree eh : 0.07 ( 0%) 0.01 ( 0%) 0.04 ( 0%) 26k ( 0%) tree CFG construction : 0.21 ( 0%) 0.01 ( 0%) 0.28 ( 0%) 20M ( 3%) tree CFG cleanup : 3.66 ( 1%) 0.30 ( 1%) 4.08 ( 1%) 549k ( 0%) tree tail merge : 0.36 ( 0%) 0.07 ( 0%) 0.47 ( 0%) 5109k ( 1%) tree VRP : 6.64 ( 2%) 0.20 ( 1%) 6.95 ( 2%) 1976k ( 0%) tree Early VRP : 6.31 ( 2%) 0.11 ( 0%) 6.35 ( 2%) 1108k ( 0%) tree copy propagation : 0.30 ( 0%) 0.04 ( 0%) 0.46 ( 0%) 0 ( 0%) tree PTA : 0.85 ( 0%) 0.24 ( 1%) 0.99 ( 0%) 906k ( 0%) tree SSA other : 0.00 ( 0%) 0.01 ( 0%) 0.02 ( 0%) 0 ( 0%) tree SSA rewrite : 0.17 ( 0%) 0.17 ( 1%) 0.31 ( 0%) 4584k ( 1%) tree SSA incremental : 0.13 ( 0%) 0.01 ( 0%) 0.16 ( 0%) 222k ( 0%) tree operand scan : 0.83 ( 0%) 0.23 ( 1%) 0.81 ( 0%) 10M ( 2%) dominator optimization : 98.73 ( 34%) 0.91 ( 4%) 99.99 ( 32%) 17M ( 3%) backwards jump threading : 60.42 ( 21%) 0.76 ( 3%) 61.86 ( 20%) 39M ( 6%) tree SRA : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) isolate eroneous paths : 0.08 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 0 ( 0%) tree CCP : 1.75 ( 1%) 0.14 ( 1%) 1.95 ( 1%) 930k ( 0%) tree split crit edges : 0.11 ( 0%) 0.01 ( 0%) 0.13 ( 0%) 4548k ( 1%) tree reassociation : 0.19 ( 0%) 0.02 ( 0%) 0.16 ( 0%) 27k ( 0%) tree PRE : 1.33 ( 0%) 0.23 ( 1%) 1.55 ( 0%) 10068k ( 1%) tree FRE : 2.47 ( 1%) 0.27 ( 1%) 2.88 ( 1%) 1125k ( 0%) tree code sinking : 0.39 ( 0%) 0.09 ( 0%) 0.39 ( 0%) 9581k ( 1%) tree linearize phis : 0.20 ( 0%) 0.02 ( 0%) 0.18 ( 0%) 1090k ( 0%) tree backward propagate : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) tree forward propagate : 0.76 ( 0%) 0.08 ( 0%) 0.83 ( 0%) 171k ( 0%) tree phiprop : 0.08 ( 0%) 0.00 ( 0%) 0.09 ( 0%) 0 ( 0%) tree conservative DCE : 0.16 ( 0%) 0.02 ( 0%) 0.28 ( 0%) 0 ( 0%) tree aggressive DCE : 0.29 ( 0%) 0.04 ( 0%) 0.28 ( 0%) 2094k ( 0%) tree buildin call DCE : 0.03 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) tree DSE : 0.19 ( 0%) 0.02 ( 0%) 0.27 ( 0%) 8272 ( 0%) PHI merge : 0.05 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) tree loop optimization : 0.00 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) tree loop invariant motion : 0.01 ( 0%) 0.01 ( 0%) 0.01 ( 0%) 0 ( 0%) complete unrolling : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) tree slp vectorization : 0.30 ( 0%) 0.09 ( 0%) 0.38 ( 0%) 3311k ( 0%) tree copy headers : 0.03 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 984k ( 0%) tree SSA uncprop : 0.16 ( 0%) 0.01 ( 0%) 0.23 ( 0%) 0 ( 0%) tree NRV optimization : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 42k ( 0%) tree switch conversion : 0.04 ( 0%) 0.00 ( 0%) 0.08 ( 0%) 554k ( 0%) tree switch lowering : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 99k ( 0%) gimple expand pow : 0.00 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) gimple widening/fma detection : 0.01 ( 0%) 0.00 ( 0%) 0.08 ( 0%) 43k ( 0%) tree strlen optimization : 0.09 ( 0%) 0.01 ( 0%) 0.16 ( 0%) 984k ( 0%) tree modref : 0.24 ( 0%) 0.03 ( 0%) 0.42 ( 0%) 1012k ( 0%) dominance frontiers : 0.16 ( 0%) 0.00 ( 0%) 0.19 ( 0%) 0 ( 0%) dominance computation : 4.05 ( 1%) 0.18 ( 1%) 4.02 ( 1%) 0 ( 0%) control dependences : 0.02 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 0 ( 0%) out of ssa : 0.15 ( 0%) 0.01 ( 0%) 0.25 ( 0%) 365k ( 0%) expand vars : 0.05 ( 0%) 0.01 ( 0%) 0.05 ( 0%) 225k ( 0%) expand : 1.49 ( 1%) 0.43 ( 2%) 1.70 ( 1%) 31M ( 5%) post expand cleanups : 0.54 ( 0%) 0.09 ( 0%) 0.71 ( 0%) 9495k ( 1%) varconst : 0.05 ( 0%) 0.08 ( 0%) 0.12 ( 0%) 4864 ( 0%) lower subreg : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) jump : 0.02 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) forward prop : 1.21 ( 0%) 0.09 ( 0%) 1.39 ( 0%) 71k ( 0%) CSE : 3.10 ( 1%) 0.27 ( 1%) 3.49 ( 1%) 187k ( 0%) dead code elimination : 0.56 ( 0%) 0.02 ( 0%) 0.67 ( 0%) 0 ( 0%) dead store elim1 : 0.37 ( 0%) 0.02 ( 0%) 0.36 ( 0%) 490k ( 0%) dead store elim2 : 0.58 ( 0%) 0.04 ( 0%) 0.66 ( 0%) 1519k ( 0%) loop analysis : 0.02 ( 0%) 0.01 ( 0%) 0.01 ( 0%) 0 ( 0%) loop init : 1.67 ( 1%) 0.11 ( 0%) 1.63 ( 1%) 3446k ( 1%) loop fini : 0.23 ( 0%) 0.05 ( 0%) 0.17 ( 0%) 0 ( 0%) CPROP : 6.33 ( 2%) 0.18 ( 1%) 6.72 ( 2%) 10M ( 2%) PRE : 0.29 ( 0%) 0.01 ( 0%) 0.33 ( 0%) 132k ( 0%) auto inc dec : 0.06 ( 0%) 0.01 ( 0%) 0.15 ( 0%) 22k ( 0%) CSE 2 : 2.12 ( 1%) 0.12 ( 1%) 2.22 ( 1%) 68k ( 0%) branch prediction : 0.31 ( 0%) 0.04 ( 0%) 0.36 ( 0%) 127k ( 0%) combiner : 1.50 ( 1%) 0.10 ( 0%) 1.70 ( 1%) 2482k ( 0%) if-conversion : 0.77 ( 0%) 0.08 ( 0%) 0.75 ( 0%) 2882k ( 0%) mode switching : 0.00 ( 0%) 0.01 ( 0%) 0.02 ( 0%) 0 ( 0%) scheduling : 16.02 ( 6%) 0.32 ( 1%) 16.46 ( 5%) 2475k ( 0%) integrated RA : 4.43 ( 2%) 0.23 ( 1%) 4.65 ( 1%) 39M ( 6%) LRA non-specific : 1.60 ( 1%) 0.02 ( 0%) 1.74 ( 1%) 430k ( 0%) LRA virtuals elimination : 1.52 ( 1%) 0.01 ( 0%) 1.54 ( 0%) 283k ( 0%) LRA reload inheritance : 0.33 ( 0%) 0.01 ( 0%) 0.25 ( 0%) 176k ( 0%) LRA create live ranges : 0.38 ( 0%) 0.00 ( 0%) 0.44 ( 0%) 105k ( 0%) LRA hard reg assignment : 0.13 ( 0%) 0.01 ( 0%) 0.07 ( 0%) 0 ( 0%) LRA rematerialization : 0.08 ( 0%) 0.03 ( 0%) 0.11 ( 0%) 0 ( 0%) reload : 0.06 ( 0%) 0.01 ( 0%) 0.09 ( 0%) 38k ( 0%) reload CSE regs : 1.20 ( 0%) 0.04 ( 0%) 1.31 ( 0%) 1997k ( 0%) ree : 0.32 ( 0%) 0.01 ( 0%) 0.25 ( 0%) 1880 ( 0%) thread pro- & epilogue : 1.14 ( 0%) 0.07 ( 0%) 1.10 ( 0%) 2690k ( 0%) if-conversion 2 : 0.17 ( 0%) 0.01 ( 0%) 0.16 ( 0%) 1560 ( 0%) peephole 2 : 0.26 ( 0%) 0.00 ( 0%) 0.20 ( 0%) 0 ( 0%) hard reg cprop : 0.53 ( 0%) 0.14 ( 1%) 0.68 ( 0%) 5568 ( 0%) scheduling 2 : 2.67 ( 1%) 0.10 ( 0%) 2.82 ( 1%) 481k ( 0%) machine dep reorg : 0.02 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) reorder blocks : 0.67 ( 0%) 0.03 ( 0%) 0.76 ( 0%) 4364k ( 1%) shorten branches : 0.30 ( 0%) 0.02 ( 0%) 0.28 ( 0%) 0 ( 0%) final : 0.95 ( 0%) 0.13 ( 1%) 1.05 ( 0%) 4363k ( 1%) symout : 0.00 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) tree if-combine : 0.08 ( 0%) 0.00 ( 0%) 0.06 ( 0%) 2800 ( 0%) if to switch conversion : 0.13 ( 0%) 0.00 ( 0%) 0.19 ( 0%) 1649k ( 0%) straight-line strength reduction : 0.05 ( 0%) 0.00 ( 0%) 0.08 ( 0%) 54k ( 0%) store merging : 0.02 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 17k ( 0%) initialize rtl : 0.04 ( 0%) 0.00 ( 0%) 0.05 ( 0%) 18k ( 0%) address lowering : 0.01 ( 0%) 0.01 ( 0%) 0.00 ( 0%) 0 ( 0%) access analysis : 0.39 ( 0%) 0.08 ( 0%) 0.47 ( 0%) 168 ( 0%) rest of compilation : 7.22 ( 2%) 0.66 ( 3%) 7.74 ( 2%) 17M ( 3%) unaccounted late compilation : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) remove unused locals : 0.14 ( 0%) 0.03 ( 0%) 0.22 ( 0%) 0 ( 0%) address taken : 0.21 ( 0%) 0.01 ( 0%) 0.22 ( 0%) 0 ( 0%) rebuild frequencies : 0.02 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 0 ( 0%) repair loop structures : 0.04 ( 0%) 0.02 ( 0%) 0.08 ( 0%) 0 ( 0%) TOTAL : 290.69 22.46 314.65 658M