diff mbox

Create an extra BB in profile-generate (PR tree-optimization/81041).

Message ID 8ae4fa57-9834-732e-bb68-0803503c1c8b@suse.cz
State New
Headers show

Commit Message

Martin Liška June 12, 2017, 7:54 a.m. UTC
Hello.

Sorry for this breakage, it's actually the same mistake I did in the PR
that belongs to the test I broke. I overlooked the ICE in log file.

I'm testing the patch, may I install it after it survives regression
tests?

Martin

Comments

Jan Hubicka June 12, 2017, 9:15 a.m. UTC | #1
> Hello.
> 
> Sorry for this breakage, it's actually the same mistake I did in the PR
> that belongs to the test I broke. I overlooked the ICE in log file.
> 
> I'm testing the patch, may I install it after it survives regression
> tests?

OK,
thanks!
Honza
> 
> Martin

> >From 20e5419136ec26ed009ca93eedccd2582b65dd36 Mon Sep 17 00:00:00 2001
> From: marxin <mliska@suse.cz>
> Date: Mon, 12 Jun 2017 09:50:06 +0200
> Subject: [PATCH] Create an extra BB in profile-generate (PR
>  tree-optimization/81041).
> 
> gcc/ChangeLog:
> 
> 2017-06-12  Martin Liska  <mliska@suse.cz>
> 
> 	PR tree-optimization/81041
> 	* tree-profile.c (gimple_gen_ic_func_profiler):
> 	Create an extra BB in profile-generate
> 	(gimple_gen_time_profiler): Likewise.
> ---
>  gcc/tree-profile.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c
> index f5c06684402..2ae4b69b68e 100644
> --- a/gcc/tree-profile.c
> +++ b/gcc/tree-profile.c
> @@ -429,6 +429,10 @@ gimple_gen_ic_func_profiler (void)
>    basic_block cond_bb = split_edge (single_succ_edge (entry));
>    basic_block update_bb = split_edge (single_succ_edge (cond_bb));
>  
> +  /* We need to do an extra split in order to not create an input
> +     for a possible PHI node.  */
> +  split_edge (single_succ_edge (update_bb));
> +
>    edge true_edge = single_succ_edge (cond_bb);
>    true_edge->flags = EDGE_TRUE_VALUE;
>  
> @@ -487,6 +491,10 @@ gimple_gen_time_profiler (unsigned tag, unsigned base)
>    basic_block cond_bb = split_edge (single_succ_edge (entry));
>    basic_block update_bb = split_edge (single_succ_edge (cond_bb));
>  
> +  /* We need to do an extra split in order to not create an input
> +     for a possible PHI node.  */
> +  split_edge (single_succ_edge (update_bb));
> +
>    edge true_edge = single_succ_edge (cond_bb);
>    true_edge->flags = EDGE_TRUE_VALUE;
>    true_edge->probability = PROB_UNLIKELY;
> -- 
> 2.13.1
>
diff mbox

Patch

From 20e5419136ec26ed009ca93eedccd2582b65dd36 Mon Sep 17 00:00:00 2001
From: marxin <mliska@suse.cz>
Date: Mon, 12 Jun 2017 09:50:06 +0200
Subject: [PATCH] Create an extra BB in profile-generate (PR
 tree-optimization/81041).

gcc/ChangeLog:

2017-06-12  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/81041
	* tree-profile.c (gimple_gen_ic_func_profiler):
	Create an extra BB in profile-generate
	(gimple_gen_time_profiler): Likewise.
---
 gcc/tree-profile.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c
index f5c06684402..2ae4b69b68e 100644
--- a/gcc/tree-profile.c
+++ b/gcc/tree-profile.c
@@ -429,6 +429,10 @@  gimple_gen_ic_func_profiler (void)
   basic_block cond_bb = split_edge (single_succ_edge (entry));
   basic_block update_bb = split_edge (single_succ_edge (cond_bb));
 
+  /* We need to do an extra split in order to not create an input
+     for a possible PHI node.  */
+  split_edge (single_succ_edge (update_bb));
+
   edge true_edge = single_succ_edge (cond_bb);
   true_edge->flags = EDGE_TRUE_VALUE;
 
@@ -487,6 +491,10 @@  gimple_gen_time_profiler (unsigned tag, unsigned base)
   basic_block cond_bb = split_edge (single_succ_edge (entry));
   basic_block update_bb = split_edge (single_succ_edge (cond_bb));
 
+  /* We need to do an extra split in order to not create an input
+     for a possible PHI node.  */
+  split_edge (single_succ_edge (update_bb));
+
   edge true_edge = single_succ_edge (cond_bb);
   true_edge->flags = EDGE_TRUE_VALUE;
   true_edge->probability = PROB_UNLIKELY;
-- 
2.13.1