diff options
Diffstat (limited to 'gcc/tree-profile.c')
-rw-r--r-- | gcc/tree-profile.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c index f5c0668..2ae4b69 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; |