https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82229
--- Comment #14 from Martin Liška <marxin at gcc dot gnu.org> ---
So for GCC 7 the drop is caused by r237791:
SVN revision: 237791
Author: hubicka
* gcc.dg/predict-12.c: New testcase.
* predict.c: Include gimple-pretty-print.h
(predicted_by_loop_heuristics_p): Check also
PRED_LOOP_EXIT_WITH_RECURSION
(predict_loops): Find self recursive calls and use special purpose
predictors for them; dump log about decisions.
(pass_profile::execute): Dump info about #of iterations.
* predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
(PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
and the performance for current trunk is similar to GCC 6.x, starting from
r248334:
Author: hubicka
* ipa-inline.c (edge_badness): Use inlined_time instead of
inline_summaries->get.
That said it's sensitive to inlining.