On Mon, 26 Jun 2023, Jan Hubicka wrote: > Hi, > compiling the testcase from PR109849 (which uses std:vector based stack to > drive a loop) with profile feedbakc leads to profile mismatches introduced by > tree-ssa-dce. This is the new code to produce unified forwarder blocks for > PHIs. > > I am not including the testcase itself since > checking it for Invalid sum is probably going to be too fragile and this > should > show in our LNT testers. The patch however fixes the mismatch. > > Bootstrapped/regtested x86_64-linux and plan to commit it shortly.
Thanks - can you also fix affected branches? Richard. > gcc/ChangeLog: > > PR tree-optimization/109849 > * tree-ssa-dce.cc (make_forwarders_with_degenerate_phis): Fix profile > count of newly constructed forwarder block. > > diff --git a/gcc/tree-ssa-dce.cc b/gcc/tree-ssa-dce.cc > index 2949957f883..f0b02456132 100644 > --- a/gcc/tree-ssa-dce.cc > +++ b/gcc/tree-ssa-dce.cc > @@ -1865,12 +1865,15 @@ make_forwarders_with_degenerate_phis (function *fn) > } > free_dominance_info (fn, CDI_DOMINATORS); > basic_block forwarder = split_edge (args[start].first); > + profile_count count = profile_count::zero (); > for (unsigned j = start + 1; j < i; ++j) > { > edge e = args[j].first; > redirect_edge_and_branch_force (e, forwarder); > redirect_edge_var_map_clear (e); > + count += e->count (); > } > + forwarder->count = count; > if (vphi) > { > tree def = copy_ssa_name (vphi_args[0]); > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman; HRB 36809 (AG Nuernberg)