https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114261
Bug ID: 114261 Summary: [13/14 Regression] Scheduling takes excessive time (97%) Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: patrick at rivosinc dot com Target Milestone: --- I recently enabled timeout detection for the risc-v fuzzer so I'm not sure how interesting this is. Seems like something weird is going on in scheduling that should be short circuited/bailed out. tip-of-tree > ./bin/riscv64-unknown-linux-gnu-gcc red.c -O1 -fschedule-insns -w > -ftime-report Time variable usr sys wall GGC phase setup : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 2779k ( 1%) phase parsing : 0.72 ( 0%) 0.54 ( 38%) 1.35 ( 0%) 36M ( 13%) phase opt and generate : 917.85 (100%) 0.89 ( 62%) 925.29 (100%) 241M ( 86%) phase last asm : 0.07 ( 0%) 0.00 ( 0%) 0.06 ( 0%) 343k ( 0%) garbage collection : 0.31 ( 0%) 0.01 ( 1%) 0.37 ( 0%) 0 ( 0%) dump files : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) callgraph construction : 0.06 ( 0%) 0.00 ( 0%) 0.10 ( 0%) 8997k ( 3%) callgraph optimization : 0.02 ( 0%) 0.01 ( 1%) 0.03 ( 0%) 10k ( 0%) callgraph functions expansion : 915.19 (100%) 0.76 ( 53%) 922.36 (100%) 198M ( 71%) callgraph ipa passes : 2.45 ( 0%) 0.10 ( 7%) 2.68 ( 0%) 19M ( 7%) ipa function summary : 0.20 ( 0%) 0.00 ( 0%) 0.21 ( 0%) 5358k ( 2%) ipa dead code removal : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) ipa inlining heuristics : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 192 ( 0%) ipa pure const : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 1080 ( 0%) ipa modref : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 4336 ( 0%) cfg construction : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 28k ( 0%) cfg cleanup : 0.08 ( 0%) 0.00 ( 0%) 0.07 ( 0%) 2496 ( 0%) CFG verifier : 1.27 ( 0%) 0.01 ( 1%) 1.26 ( 0%) 0 ( 0%) trivially dead code : 0.11 ( 0%) 0.00 ( 0%) 0.12 ( 0%) 0 ( 0%) df scan insns : 0.20 ( 0%) 0.04 ( 3%) 0.26 ( 0%) 528 ( 0%) df reaching defs : 1.03 ( 0%) 0.03 ( 2%) 1.07 ( 0%) 0 ( 0%) df live regs : 0.75 ( 0%) 0.00 ( 0%) 0.80 ( 0%) 0 ( 0%) df live&initialized regs : 0.22 ( 0%) 0.00 ( 0%) 0.22 ( 0%) 0 ( 0%) df use-def / def-use chains : 0.00 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 0 ( 0%) df reg dead/unused notes : 0.66 ( 0%) 0.00 ( 0%) 0.68 ( 0%) 7041k ( 2%) register information : 0.27 ( 0%) 0.00 ( 0%) 0.28 ( 0%) 0 ( 0%) alias analysis : 0.45 ( 0%) 0.01 ( 1%) 0.45 ( 0%) 14M ( 5%) alias stmt walking : 0.38 ( 0%) 0.03 ( 2%) 0.50 ( 0%) 3192 ( 0%) register scan : 0.03 ( 0%) 0.00 ( 0%) 0.05 ( 0%) 586k ( 0%) rebuild jump labels : 0.05 ( 0%) 0.00 ( 0%) 0.05 ( 0%) 0 ( 0%) preprocessing : 0.08 ( 0%) 0.09 ( 6%) 0.24 ( 0%) 1861k ( 1%) lexical analysis : 0.24 ( 0%) 0.16 ( 11%) 0.30 ( 0%) 0 ( 0%) parser (global) : 0.18 ( 0%) 0.12 ( 8%) 0.35 ( 0%) 10103k ( 4%) parser function body : 0.19 ( 0%) 0.17 ( 12%) 0.40 ( 0%) 24M ( 9%) inline parameters : 0.10 ( 0%) 0.00 ( 0%) 0.07 ( 0%) 128k ( 0%) tree gimplify : 0.04 ( 0%) 0.02 ( 1%) 0.05 ( 0%) 12M ( 5%) tree eh : 0.00 ( 0%) 0.01 ( 1%) 0.00 ( 0%) 10056 ( 0%) tree CFG construction : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 8660k ( 3%) tree CFG cleanup : 0.03 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 20k ( 0%) tree copy propagation : 0.02 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 200 ( 0%) tree PTA : 0.36 ( 0%) 0.06 ( 4%) 0.44 ( 0%) 2128k ( 1%) tree SSA other : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) tree SSA rewrite : 0.03 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 2079k ( 1%) tree SSA incremental : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 196k ( 0%) tree operand scan : 0.00 ( 0%) 0.01 ( 1%) 0.02 ( 0%) 3695k ( 1%) dominator optimization : 0.42 ( 0%) 0.00 ( 0%) 0.46 ( 0%) 515k ( 0%) backwards jump threading : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 2256 ( 0%) tree CCP : 0.13 ( 0%) 0.01 ( 1%) 0.12 ( 0%) 751k ( 0%) tree FRE : 0.13 ( 0%) 0.00 ( 0%) 0.07 ( 0%) 659k ( 0%) tree code sinking : 0.00 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 63k ( 0%) tree backward propagate : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) tree forward propagate : 0.03 ( 0%) 0.00 ( 0%) 0.05 ( 0%) 62k ( 0%) tree conservative DCE : 0.06 ( 0%) 0.01 ( 1%) 0.06 ( 0%) 0 ( 0%) tree aggressive DCE : 0.03 ( 0%) 0.01 ( 1%) 0.02 ( 0%) 0 ( 0%) tree DSE : 0.03 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 16k ( 0%) tree loop invariant motion : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 2712 ( 0%) tree canonical iv : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 234k ( 0%) complete unrolling : 0.05 ( 0%) 0.00 ( 0%) 0.06 ( 0%) 977k ( 0%) tree iv optimization : 0.06 ( 0%) 0.00 ( 0%) 0.07 ( 0%) 2150k ( 1%) tree copy headers : 0.04 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 684k ( 0%) tree SSA verifier : 1.39 ( 0%) 0.01 ( 1%) 1.45 ( 0%) 0 ( 0%) tree STMT verifier : 2.04 ( 0%) 0.03 ( 2%) 2.14 ( 0%) 0 ( 0%) tree strlen optimization : 0.02 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 582k ( 0%) tree modref : 0.04 ( 0%) 0.00 ( 0%) 0.05 ( 0%) 11k ( 0%) callgraph verifier : 0.07 ( 0%) 0.00 ( 0%) 0.10 ( 0%) 0 ( 0%) dominance computation : 0.01 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 0 ( 0%) out of ssa : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 376 ( 0%) expand vars : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 2102k ( 1%) expand : 0.29 ( 0%) 0.05 ( 3%) 0.37 ( 0%) 63M ( 22%) post expand cleanups : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 5184 ( 0%) lower subreg : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) forward prop : 0.25 ( 0%) 0.04 ( 3%) 0.29 ( 0%) 1448k ( 1%) CSE : 0.64 ( 0%) 0.01 ( 1%) 0.65 ( 0%) 1083k ( 0%) dead code elimination : 0.07 ( 0%) 0.00 ( 0%) 0.07 ( 0%) 0 ( 0%) dead store elim1 : 0.70 ( 0%) 0.01 ( 1%) 0.74 ( 0%) 2507k ( 1%) dead store elim2 : 0.61 ( 0%) 0.00 ( 0%) 0.61 ( 0%) 2385k ( 1%) loop init : 0.00 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 1257k ( 0%) loop invariant motion : 0.15 ( 0%) 0.00 ( 0%) 0.13 ( 0%) 23k ( 0%) loop fini : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) auto inc dec : 0.06 ( 0%) 0.00 ( 0%) 0.06 ( 0%) 144 ( 0%) branch prediction : 0.01 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 58k ( 0%) combiner : 1.12 ( 0%) 0.03 ( 2%) 1.17 ( 0%) 22M ( 8%) scheduling : 895.36 ( 97%) 0.19 ( 13%) 901.31 ( 97%) 15M ( 6%) integrated RA : 2.93 ( 0%) 0.21 ( 15%) 3.28 ( 0%) 52M ( 19%) LRA non-specific : 0.41 ( 0%) 0.01 ( 1%) 0.44 ( 0%) 218k ( 0%) LRA virtuals elimination : 0.11 ( 0%) 0.00 ( 0%) 0.10 ( 0%) 42k ( 0%) LRA reload inheritance : 0.03 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 4816 ( 0%) LRA create live ranges : 0.12 ( 0%) 0.00 ( 0%) 0.12 ( 0%) 411k ( 0%) LRA hard reg assignment : 0.10 ( 0%) 0.00 ( 0%) 0.10 ( 0%) 0 ( 0%) reload : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 144 ( 0%) reload CSE regs : 0.18 ( 0%) 0.00 ( 0%) 0.17 ( 0%) 2470k ( 1%) thread pro- & epilogue : 0.27 ( 0%) 0.00 ( 0%) 0.26 ( 0%) 18k ( 0%) hard reg cprop : 0.21 ( 0%) 0.00 ( 0%) 0.21 ( 0%) 11k ( 0%) reorder blocks : 0.03 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 89k ( 0%) shorten branches : 0.04 ( 0%) 0.01 ( 1%) 0.04 ( 0%) 0 ( 0%) final : 0.15 ( 0%) 0.00 ( 0%) 0.15 ( 0%) 385k ( 0%) straight-line strength reduction : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 234k ( 0%) initialize rtl : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 17k ( 0%) access analysis : 0.00 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 512 ( 0%) rest of compilation : 0.21 ( 0%) 0.00 ( 0%) 0.24 ( 0%) 1531k ( 1%) remove unused locals : 0.02 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 0 ( 0%) address taken : 0.03 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 0 ( 0%) verify loop closed : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) verify RTL sharing : 2.30 ( 0%) 0.02 ( 1%) 2.40 ( 0%) 0 ( 0%) TOTAL : 918.66 1.43 926.72 280M Extra diagnostic checks enabled; compiler may run slowly. Configure with --enable-checking=release to disable checks. Bisected with a 2 minute timeout. First bad commit: r13-5154-g733a1b777f1 r13-5154-g733a1b777f1 > ./bin/riscv64-unknown-linux-gnu-gcc red.c -O1 -fschedule-insns -w > -ftime-report; /work/patrick/notify.sh Time variable usr sys wall GGC phase setup : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 1539k ( 1%) phase parsing : 0.61 ( 0%) 0.51 ( 35%) 1.12 ( 0%) 36M ( 13%) phase opt and generate :1342.05 (100%) 0.93 ( 64%)1348.25 (100%) 246M ( 87%) phase last asm : 0.05 ( 0%) 0.01 ( 1%) 0.06 ( 0%) 89k ( 0%) garbage collection : 0.39 ( 0%) 0.01 ( 1%) 0.41 ( 0%) 0 ( 0%) callgraph construction : 0.12 ( 0%) 0.02 ( 1%) 0.09 ( 0%) 9000k ( 3%) callgraph optimization : 0.02 ( 0%) 0.01 ( 1%) 0.02 ( 0%) 4112 ( 0%) callgraph functions expansion :1339.07 (100%) 0.81 ( 56%)1345.12 (100%) 202M ( 71%) callgraph ipa passes : 2.68 ( 0%) 0.10 ( 7%) 2.81 ( 0%) 21M ( 7%) ipa function summary : 0.08 ( 0%) 0.01 ( 1%) 0.09 ( 0%) 7113k ( 2%) ipa dead code removal : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) ipa inlining heuristics : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 2536 ( 0%) ipa pure const : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 1080 ( 0%) ipa free inline summary : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) ipa modref : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 6256 ( 0%) cfg construction : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 28k ( 0%) cfg cleanup : 0.15 ( 0%) 0.00 ( 0%) 0.14 ( 0%) 2496 ( 0%) CFG verifier : 1.46 ( 0%) 0.01 ( 1%) 1.48 ( 0%) 0 ( 0%) trivially dead code : 0.12 ( 0%) 0.00 ( 0%) 0.12 ( 0%) 0 ( 0%) df scan insns : 0.18 ( 0%) 0.06 ( 4%) 0.24 ( 0%) 624 ( 0%) df reaching defs : 1.28 ( 0%) 0.02 ( 1%) 1.29 ( 0%) 0 ( 0%) df live regs : 0.87 ( 0%) 0.00 ( 0%) 0.83 ( 0%) 0 ( 0%) df live&initialized regs : 0.25 ( 0%) 0.00 ( 0%) 0.23 ( 0%) 0 ( 0%) df use-def / def-use chains : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 ( 0%) df reg dead/unused notes : 0.70 ( 0%) 0.00 ( 0%) 0.69 ( 0%) 6981k ( 2%) register information : 0.33 ( 0%) 0.00 ( 0%) 0.33 ( 0%) 0 ( 0%) alias analysis : 0.46 ( 0%) 0.00 ( 0%) 0.44 ( 0%) 14M ( 5%) alias stmt walking : 0.54 ( 0%) 0.02 ( 1%) 0.59 ( 0%) 3192 ( 0%) register scan : 0.02 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 591k ( 0%) rebuild jump labels : 0.05 ( 0%) 0.00 ( 0%) 0.05 ( 0%) 0 ( 0%) preprocessing : 0.12 ( 0%) 0.10 ( 7%) 0.40 ( 0%) 1602k ( 1%) lexical analysis : 0.17 ( 0%) 0.20 ( 14%) 0.26 ( 0%) 0 ( 0%) parser (global) : 0.16 ( 0%) 0.09 ( 6%) 0.22 ( 0%) 10M ( 4%) parser function body : 0.11 ( 0%) 0.11 ( 8%) 0.16 ( 0%) 24M ( 9%) parser inl. func. body : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 24k ( 0%) inline parameters : 0.08 ( 0%) 0.00 ( 0%) 0.08 ( 0%) 128k ( 0%) tree gimplify : 0.05 ( 0%) 0.00 ( 0%) 0.08 ( 0%) 12M ( 5%) tree eh : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 10056 ( 0%) tree CFG construction : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 8669k ( 3%) tree CFG cleanup : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 25k ( 0%) tree copy propagation : 0.04 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 200 ( 0%) tree PTA : 0.40 ( 0%) 0.07 ( 5%) 0.45 ( 0%) 2127k ( 1%) tree SSA rewrite : 0.02 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 2079k ( 1%) tree SSA incremental : 0.02 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 200k ( 0%) tree operand scan : 0.03 ( 0%) 0.03 ( 2%) 0.04 ( 0%) 3691k ( 1%) dominator optimization : 0.80 ( 0%) 0.00 ( 0%) 0.79 ( 0%) 2918k ( 1%) backwards jump threading : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 2560 ( 0%) tree CCP : 0.12 ( 0%) 0.00 ( 0%) 0.13 ( 0%) 734k ( 0%) tree reassociation : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 96 ( 0%) tree FRE : 0.11 ( 0%) 0.00 ( 0%) 0.12 ( 0%) 684k ( 0%) tree code sinking : 0.03 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 63k ( 0%) tree linearize phis : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 11k ( 0%) tree forward propagate : 0.05 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 67k ( 0%) tree conservative DCE : 0.02 ( 0%) 0.04 ( 3%) 0.06 ( 0%) 0 ( 0%) tree aggressive DCE : 0.04 ( 0%) 0.00 ( 0%) 0.08 ( 0%) 16k ( 0%) tree DSE : 0.02 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 0 ( 0%) tree loop invariant motion : 0.03 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 2616 ( 0%) tree canonical iv : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 236k ( 0%) complete unrolling : 0.06 ( 0%) 0.00 ( 0%) 0.06 ( 0%) 980k ( 0%) tree iv optimization : 0.05 ( 0%) 0.00 ( 0%) 0.05 ( 0%) 2196k ( 1%) tree SSA uncprop : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%) 0 ( 0%) tree SSA verifier : 1.82 ( 0%) 0.00 ( 0%) 1.77 ( 0%) 0 ( 0%) tree STMT verifier : 2.38 ( 0%) 0.00 ( 0%) 2.35 ( 0%) 0 ( 0%) tree strlen optimization : 0.03 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 631k ( 0%) tree modref : 0.04 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 12k ( 0%) callgraph verifier : 0.09 ( 0%) 0.00 ( 0%) 0.11 ( 0%) 0 ( 0%) dominance computation : 0.05 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 0 ( 0%) out of ssa : 0.03 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 480 ( 0%) expand vars : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 2133k ( 1%) expand : 0.29 ( 0%) 0.01 ( 1%) 0.31 ( 0%) 61M ( 22%) post expand cleanups : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 5656 ( 0%) varconst : 0.00 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 88k ( 0%) lower subreg : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) forward prop : 0.22 ( 0%) 0.02 ( 1%) 0.24 ( 0%) 1193k ( 0%) CSE : 0.60 ( 0%) 0.01 ( 1%) 0.61 ( 0%) 863k ( 0%) dead code elimination : 0.08 ( 0%) 0.00 ( 0%) 0.09 ( 0%) 0 ( 0%) dead store elim1 : 0.76 ( 0%) 0.00 ( 0%) 0.77 ( 0%) 2501k ( 1%) dead store elim2 : 0.79 ( 0%) 0.00 ( 0%) 0.77 ( 0%) 2492k ( 1%) loop init : 0.02 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 1305k ( 0%) loop invariant motion : 0.13 ( 0%) 0.00 ( 0%) 0.18 ( 0%) 34k ( 0%) loop fini : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 ( 0%) branch prediction : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 60k ( 0%) combiner : 0.94 ( 0%) 0.00 ( 0%) 0.94 ( 0%) 25M ( 9%) if-conversion : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 10k ( 0%) scheduling :1315.49 ( 98%) 0.37 ( 26%)1320.88 ( 98%) 15M ( 5%) integrated RA : 4.20 ( 0%) 0.22 ( 15%) 4.58 ( 0%) 53M ( 19%) LRA non-specific : 0.60 ( 0%) 0.00 ( 0%) 0.63 ( 0%) 245k ( 0%) LRA virtuals elimination : 0.20 ( 0%) 0.00 ( 0%) 0.20 ( 0%) 43k ( 0%) LRA reload inheritance : 0.05 ( 0%) 0.00 ( 0%) 0.05 ( 0%) 5040 ( 0%) LRA create live ranges : 0.19 ( 0%) 0.00 ( 0%) 0.19 ( 0%) 412k ( 0%) LRA hard reg assignment : 0.15 ( 0%) 0.00 ( 0%) 0.15 ( 0%) 0 ( 0%) reload : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 168 ( 0%) reload CSE regs : 0.18 ( 0%) 0.00 ( 0%) 0.19 ( 0%) 2494k ( 1%) thread pro- & epilogue : 0.28 ( 0%) 0.00 ( 0%) 0.28 ( 0%) 20k ( 0%) hard reg cprop : 0.21 ( 0%) 0.00 ( 0%) 0.20 ( 0%) 22k ( 0%) reorder blocks : 0.05 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 99k ( 0%) shorten branches : 0.06 ( 0%) 0.00 ( 0%) 0.05 ( 0%) 0 ( 0%) final : 0.13 ( 0%) 0.00 ( 0%) 0.15 ( 0%) 624 ( 0%) straight-line strength reduction : 0.03 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 234k ( 0%) access analysis : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 416 ( 0%) rest of compilation : 0.23 ( 0%) 0.01 ( 1%) 0.27 ( 0%) 2179k ( 1%) remove unused locals : 0.02 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 0 ( 0%) address taken : 0.01 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 0 ( 0%) verify RTL sharing : 2.54 ( 0%) 0.00 ( 0%) 2.57 ( 0%) 0 ( 0%) TOTAL :1342.71 1.45 1349.44 284M Extra diagnostic checks enabled; compiler may run slowly. Configure with --enable-checking=release to disable checks. I don't have the tooling to reliably reduce a slow compile issue so I've attached the unreduced preprocessed file I was testing with. Any tips for reducing a case like this would be appreciated. Testcase found via fuzzer.