https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87615
--- Comment #12 from Martin Jambor <jamborm at gcc dot gnu.org> --- I have just posted the patch for review in: https://gcc.gnu.org/ml/gcc-patches/2018-12/msg00456.html With it the compile time of the testcase goes down from approximately 340 seconds to about 160 seconds (With -fno-ipa-cp -fno-inline the compile time is only 30 seconds, however) the relevant bits of-ftime-report -ftime-report-details are below: Time variable usr sys wall GGC phase setup : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 1215 kB ( 0%) phase parsing : 1.07 ( 1%) 1.12 ( 38%) 2.20 ( 1%) 37151 kB ( 7%) phase opt and generate : 161.38 ( 99%) 1.85 ( 62%) 163.28 ( 99%) 469241 kB ( 92%) ... ipa function summary : 0.11 ( 0%) 0.00 ( 0%) 0.10 ( 0%) 554 kB ( 0%) `- tree STMT verifier : 0.04 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 0 kB ( 0%) `- loop init : 0.04 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 11 kB ( 0%) `- tree SSA verifier : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 kB ( 0%) `- dominance computation : 0.02 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 0 kB ( 0%) ... ipa cp : 0.12 ( 0%) 0.02 ( 1%) 0.10 ( 0%) 9656 kB ( 2%) `- tree STMT verifier : 0.05 ( 0%) 0.00 ( 0%) 0.05 ( 0%) 0 kB ( 0%) `- alias stmt walking : 0.00 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 kB ( 0%) `- tree SSA verifier : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 kB ( 0%) `- dominance computation : 0.02 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 0 kB ( 0%) ... ipa icf : 2.98 ( 2%) 0.00 ( 0%) 2.99 ( 2%) 0 kB ( 0%) `- tree STMT verifier : 0.04 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 0 kB ( 0%) `- tree SSA verifier : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 kB ( 0%) `- dominance computation : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 kB ( 0%) ... CFG verifier : 2.27 ( 1%) 0.00 ( 0%) 2.37 ( 1%) 0 kB ( 0%) ... df reaching defs : 1.59 ( 1%) 0.01 ( 0%) 1.59 ( 1%) 0 kB ( 0%) df live regs : 1.74 ( 1%) 0.00 ( 0%) 1.73 ( 1%) 0 kB ( 0%) df live&initialized regs : 5.32 ( 3%) 0.00 ( 0%) 5.37 ( 3%) 0 kB ( 0%) ... alias stmt walking : 3.19 ( 2%) 0.30 ( 10%) 3.35 ( 2%) 5 kB ( 0%) ... tree VRP : 36.88 ( 23%) 0.15 ( 5%) 37.00 ( 22%) 58212 kB ( 11%) `- tree SSA incremental : 0.10 ( 0%) 0.07 ( 2%) 0.19 ( 0%) 16219 kB ( 3%) `- CFG verifier : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 kB ( 0%) `- repair loop structures : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 kB ( 0%) `- dominance computation : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 kB ( 0%) `- tree operand scan : 0.09 ( 0%) 0.04 ( 1%) 0.14 ( 0%) 9616 kB ( 2%) `- tree SSA verifier : 0.10 ( 0%) 0.00 ( 0%) 0.10 ( 0%) 0 kB ( 0%) `- loop init : 0.03 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 23 kB ( 0%) `- tree STMT verifier : 0.13 ( 0%) 0.00 ( 0%) 0.15 ( 0%) 0 kB ( 0%) tree Early VRP : 6.53 ( 4%) 0.00 ( 0%) 6.52 ( 4%) 1621 kB ( 0%) `- CFG verifier : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 kB ( 0%) `- repair loop structures : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 kB ( 0%) `- dominance computation : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 kB ( 0%) `- tree operand scan : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 kB ( 0%) `- tree SSA verifier : 0.04 ( 0%) 0.00 ( 0%) 0.04 ( 0%) 0 kB ( 0%) `- loop init : 0.05 ( 0%) 0.00 ( 0%) 0.05 ( 0%) 39 kB ( 0%) `- tree STMT verifier : 0.05 ( 0%) 0.00 ( 0%) 0.05 ( 0%) 0 kB ( 0%) tree FRE : 59.08 ( 36%) 0.69 ( 23%) 59.93 ( 36%) 1822 kB ( 0%) `- CFG verifier : 0.02 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 0 kB ( 0%) `- repair loop structures : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 kB ( 0%) `- dominance computation : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 kB ( 0%) `- tree SSA verifier : 0.08 ( 0%) 0.00 ( 0%) 0.08 ( 0%) 0 kB ( 0%) `- loop init : 0.06 ( 0%) 0.00 ( 0%) 0.05 ( 0%) 0 kB ( 0%) `- alias stmt walking : 0.78 ( 0%) 0.01 ( 0%) 0.69 ( 0%) 5 kB ( 0%) `- tree STMT verifier : 0.09 ( 0%) 0.00 ( 0%) 0.09 ( 0%) 0 kB ( 0%) tree SSA verifier : 5.00 ( 3%) 0.00 ( 0%) 4.86 ( 3%) 0 kB ( 0%) `- dominance computation : 0.32 ( 0%) 0.00 ( 0%) 0.40 ( 0%) 0 kB ( 0%) tree STMT verifier : 6.82 ( 4%) 0.03 ( 1%) 6.82 ( 4%) 0 kB ( 0%) ... verify RTL sharing : 3.95 ( 2%) 0.00 ( 0%) 3.91 ( 2%) 0 kB ( 0%)