https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106514
--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Richard Biener from comment #10) > Re-confirmed. =15 vs =30 goes from > > backwards jump threading : 0.58 ( 13%) > > to > > backwards jump threading : 7.00 ( 65%) > > so it still shows exponential behavior for CFGs like > > if (a) > ... > if (b) > ... > if (c) > ... > > because we explore all paths through the CFG that fit in some size limit. > I'm not sure if there's any low hanging fruit besides this (like if we > properly avoid re-doing local computes when visiting blocks as part of a > path multiple times). We do have --param max-jump-thread-paths putting a hard limit on the number of branches in a paths we explore, the default might just be a bit high for this testcase.