https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91522
Bug ID: 91522 Summary: [10 Regression] STV is slow Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org Target Milestone: --- Compiling module_domain.fppized.f90 from 521.wrf with -Ofast -march=haswell reveals machine dep reorg : 89.07 ( 95%) 0.02 ( 18%) 89.10 ( 95%) 54 kB ( 0%) TOTAL : 95.13 0.13 95.32 103803 kB perf reports (checking is enabled but -fno-checking supplied): 83.74% f951 f951 [.] (anonymous namespace)::scalar_chain::analyze_register_chain 5.80% f951 f951 [.] bitmap_bit_p 5.13% f951 f951 [.] (anonymous namespace)::general_scalar_chain::mark_dual_mode_def which is exactly what I noticed when reviewing the pass functionality: /* ??? The following is quadratic since analyze_register_chain iterates over all refs to look for dual-mode regs. Instead this should be done separately for all regs mentioned in the chain once. */