aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-vect-loop-manip.c10
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 93d4cb3..872ca08 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2017-11-14 Jan Hubicka <hubicka@ucw.cz>
+ * tree-vect-loop-manip.c (vect_do_peeling): Do not use
+ scale_bbs_frequencies_int.
+
+2017-11-14 Jan Hubicka <hubicka@ucw.cz>
+
* final.c (compute_alignments): Use counts rather than frequencies.
2017-11-14 Jan Hubicka <hubicka@ucw.cz>
diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c
index be34310..1df591e 100644
--- a/gcc/tree-vect-loop-manip.c
+++ b/gcc/tree-vect-loop-manip.c
@@ -1844,14 +1844,16 @@ vect_do_peeling (loop_vec_info loop_vinfo, tree niters, tree nitersm1,
/* Simply propagate profile info from guard_bb to guard_to which is
a merge point of control flow. */
guard_to->count = guard_bb->count;
+
/* Scale probability of epilog loop back.
FIXME: We should avoid scaling down and back up. Profile may
get lost if we scale down to 0. */
- int scale_up = REG_BR_PROB_BASE * REG_BR_PROB_BASE
- / prob_vector.to_reg_br_prob_base ();
basic_block *bbs = get_loop_body (epilog);
- scale_bbs_frequencies_int (bbs, epilog->num_nodes, scale_up,
- REG_BR_PROB_BASE);
+ for (unsigned int i = 0; i < epilog->num_nodes; i++)
+ bbs[i]->count = bbs[i]->count.apply_scale
+ (bbs[i]->count,
+ bbs[i]->count.apply_probability
+ (prob_vector));
free (bbs);
}