https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119293

--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #8)
> ```
> diff --git a/gcc/tree-cfgcleanup.cc b/gcc/tree-cfgcleanup.cc
> index 093fde93da6..9df75d963be 100644
> --- a/gcc/tree-cfgcleanup.cc
> +++ b/gcc/tree-cfgcleanup.cc
> @@ -226,6 +231,7 @@ cleanup_control_expr_graph (basic_block bb,
> gimple_stmt_iterator gsi)
>                 }
> 
>               taken_edge->probability += e->probability;
> +             taken_edge->dest->count += e->count ();
>               remove_edge_and_dominated_blocks (e);
>               retval = true;
>             }
> ```
> 
> Here is the fix for one of the mismatch counts issue here.
> I am still debugging the other one.

              e->dest->count -= e->count ();

But then all edges don't do the right thing afterwards ...

Reply via email to