https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46590
--- Comment #49 from Richard Biener <rguenth at gcc dot gnu.org> --- I have a fix for the copy-headers issue. Afterwards: tree copy headers : 0.03 ( 0%) 0.01 ( 3%) 0.03 ( 0%) 4763 kB ( 3%) with the remaining worst offenders being df live&initialized regs : 10.97 ( 53%) 0.02 ( 6%) 11.11 ( 52%) 0 kB ( 0%) alias stmt walking : 1.85 ( 9%) 0.07 ( 21%) 2.08 ( 10%) 92 kB ( 0%) and the DF time is all spent in RTL invariant motion: loop invariant motion : 0.44 ( 2%) 0.00 ( 0%) 0.40 ( 2%) 151 kB ( 0%) `- df live regs : 0.01 ( 0%) 0.00 ( 0%) 0.03 ( 0%) 0 kB ( 0%) `- df reaching defs : 0.84 ( 4%) 0.02 ( 6%) 0.96 ( 5%) 0 kB ( 0%) `- df live&initialized regs : 11.10 ( 54%) 0.01 ( 3%) 11.02 ( 52%) 0 kB ( 0%) `- df use-def / def-use chains : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 0 kB ( 0%) alias stmt waling is spent in FRE/DOM (that's expected): tree FRE : 0.75 ( 4%) 0.01 ( 3%) 0.91 ( 4%) 2505 kB ( 2%) `- alias stmt walking : 1.75 ( 8%) 0.02 ( 6%) 1.63 ( 8%) 92 kB ( 0%) dominator optimization : 0.19 ( 1%) 0.01 ( 3%) 0.22 ( 1%) 5850 kB ( 4%) `- tree operand scan : 0.00 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 kB ( 0%) `- alias stmt walking : 0.11 ( 1%) 0.01 ( 3%) 0.08 ( 0%) 0 kB ( 0%) `- loop init : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%) 788 kB ( 0%) `- tree CFG cleanup : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%) 0 kB ( 0%)