tree-vect-loop-manip.c (vect_do_peeling): Do not use scale_bbs_frequencies_int.
authorJan Hubicka <hubicka@ucw.cz>
Thu, 16 Nov 2017 11:04:40 +0000 (12:04 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 16 Nov 2017 11:04:40 +0000 (11:04 +0000)
* tree-vect-loop-manip.c (vect_do_peeling): Do not use
scale_bbs_frequencies_int.

From-SVN: r254810

gcc/ChangeLog
gcc/tree-vect-loop-manip.c

index 93d4cb3423c3972ba4d4000cb6219f5a0ba3bdc2..872ca086308ed29b830dd500139107b64856c27e 100644 (file)
@@ -1,3 +1,8 @@
+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.
index be34310fd03fdd1213a9d191df596ec55fbdb69f..1df591e69f21674bd410aa7295476dd4b778d27a 100644 (file)
@@ -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);
        }