[PATCH] dojump: Fix up probabilities splitting in dojump.c comparison splitting [PR98212]
Eric Botcazou
botcazou@adacore.com
Thu Dec 10 11:14:22 GMT 2020
> 2020-12-10 Jakub Jelinek <jakub@redhat.com>
>
> PR rtl-optimization/98212
> * dojump.c (do_compare_rtx_and_jump): Change computation of
> first_prob for and_them and don't invert prob around it.
>
> * gcc.dg/predict-8.c: Adjust expected probability.
>
> --- gcc/dojump.c.jj 2020-12-09 15:11:17.042888002 +0100
> +++ gcc/dojump.c 2020-12-09 20:05:59.535234206 +0100
> @@ -1148,9 +1148,8 @@ do_compare_rtx_and_jump (rtx op0, rtx op
> if (and_them)
> {
> rtx_code_label *dest_label;
> - prob = prob.invert ();
> - profile_probability first_prob = prob.split
(cprob).invert ();
> - prob = prob.invert ();
> + profile_probability first_prob
> + = prob.split (cprob.invert ()).invert ();
> /* If we only jump if true, just bypass the second
jump. */
> if (! if_false_label)
> {
The computation looks plausible, but you need to fix the comment too, it is
rather confusing as it seems to depict an OR-ELSE rather than an AND-THEN.
--
Eric Botcazou
More information about the Gcc-patches
mailing list