public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Fix profile of forwardes produced by cd-dce
@ 2023-06-26 16:29 Jan Hubicka
  2023-06-27  6:35 ` Richard Biener
  0 siblings, 1 reply; 2+ messages in thread
From: Jan Hubicka @ 2023-06-26 16:29 UTC (permalink / raw)
  To: gcc-patches, rguenther

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.

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]);

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Fix profile of forwardes produced by cd-dce
  2023-06-26 16:29 Fix profile of forwardes produced by cd-dce Jan Hubicka
@ 2023-06-27  6:35 ` Richard Biener
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Biener @ 2023-06-27  6:35 UTC (permalink / raw)
  To: Jan Hubicka; +Cc: gcc-patches

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 <rguenther@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)

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-06-27  6:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-26 16:29 Fix profile of forwardes produced by cd-dce Jan Hubicka
2023-06-27  6:35 ` Richard Biener

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).