https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64928
Steven Bosscher <steven at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |steven at gcc dot gnu.org --- Comment #12 from Steven Bosscher <steven at gcc dot gnu.org> --- (In reply to Richard Biener from comment #9) > It seems that loop invariant motion is responsible for most of the abnormals, > thus -fno-tree-loop-im restores performance. > > The loop LIM detects is of style > > <bb 6>: (header) > # ___fp_3(ab) = PHI <___fp_41(4), ___fp_5(21)> > # ___r1_7(ab) = PHI <___r1_42(4), ___r1_9(21)> > # ___r2_11(ab) = PHI <___r2_43(4), ___r3_17(21)> > # ___r3_19(ab) = PHI <___r3_44(4), ___r3_23(21)> > # ___r4_25 = PHI <___r4_45(4), ___r4_26(21)> > # gotovar.17_29 = PHI <_51(4), _69(21)> > goto gotovar.17_29; Perhaps disable LIM (and maybe PRE) if the CFG has a large edge/bb ratio (i.e. dense CFG)? There's probably no benefit in such cases anyway.