]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* tree-call-cdce.c (shrink_wrap_one_built_in_call): Update profile.
authorJan Hubicka <jh@suse.cz>
Sat, 29 Sep 2012 12:33:19 +0000 (14:33 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sat, 29 Sep 2012 12:33:19 +0000 (12:33 +0000)
From-SVN: r191852

gcc/ChangeLog
gcc/tree-call-cdce.c

index 1845cfc21b1ca3f84e8839601081acb05e427018..58c772fa03e97e01a758cf880449b62fb7960d73 100644 (file)
@@ -1,3 +1,7 @@
+2012-09-28  Jan Hubicka  <jh@suse.cz>
+
+       * tree-call-cdce.c (shrink_wrap_one_built_in_call): Update profile.
+
 2012-09-28  Jan Hubicka  <jh@suse.cz>
 
        * function.c (dup_block_and_redirect): Update profile.
index c879548483b7729e52bab4ad9e743c857ad2ec57..2a3fd873b59ef2978a1eda1cb77ca12c77c2578e 100644 (file)
@@ -773,8 +773,13 @@ shrink_wrap_one_built_in_call (gimple bi_call)
                                           EDGE_FALSE_VALUE);
 
   bi_call_in_edge0->probability = REG_BR_PROB_BASE * ERR_PROB;
+  bi_call_in_edge0->count =
+      apply_probability (guard_bb0->count,
+                        bi_call_in_edge0->probability);
   join_tgt_in_edge_fall_thru->probability =
-      REG_BR_PROB_BASE - bi_call_in_edge0->probability;
+      inverse_probability (bi_call_in_edge0->probability);
+  join_tgt_in_edge_fall_thru->count =
+      guard_bb0->count - bi_call_in_edge0->count;
 
   /* Code generation for the rest of the conditions  */
   guard_bb = guard_bb0;
@@ -804,8 +809,12 @@ shrink_wrap_one_built_in_call (gimple bi_call)
       bi_call_in_edge = make_edge (guard_bb, bi_call_bb, EDGE_TRUE_VALUE);
 
       bi_call_in_edge->probability = REG_BR_PROB_BASE * ERR_PROB;
+      bi_call_in_edge->count =
+         apply_probability (guard_bb->count,
+                            bi_call_in_edge->probability);
       guard_bb_in_edge->probability =
-          REG_BR_PROB_BASE - bi_call_in_edge->probability;
+          inverse_probability (bi_call_in_edge->probability);
+      guard_bb_in_edge->count = guard_bb->count - bi_call_in_edge->count;
     }
 
   VEC_free (gimple, heap, conds);