https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53508
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hubicka at gcc dot gnu.org,
| |rth at gcc dot gnu.org
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
/* The noreturn predictor has been moved to the tree level. The rtl-level
predictors estimate this branch about 20%, which isn't enough to get
things moved out of line. Since this is the only extant case of adding
a noreturn function at the rtl level, it doesn't seem worth doing ought
except adding the prediction by hand. */
rtx_insn *tmp = get_last_insn ();
if (JUMP_P (tmp))
predict_insn_def (tmp, PRED_NORETURN, TAKEN);
I assume. Still the way it was since merging by RTH. I suppose
PRED_NORETURN + TAKEN makes it obvious it's wrong, but we have
/* Branch to basic block containing call marked by noreturn attribute. */
DEF_PREDICTOR (PRED_NORETURN, "noreturn call", PROB_VERY_LIKELY,
PRED_FLAG_FIRST_MATCH)
so it might be just confusing?