Fix tp_first_run update in split_function.
authorJan Hubicka <hubicka@ucw.cz>
Sun, 8 Dec 2019 16:57:20 +0000 (17:57 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sun, 8 Dec 2019 16:57:20 +0000 (16:57 +0000)
The value 0 in tp_first_run is special meaing that profile is unknown.  We
should not set it to 1.

* ipa-split.c (split_function): Preserve 0 tp_first_run.

From-SVN: r279091

gcc/ChangeLog
gcc/ipa-split.c

index f051c23..416e7d6 100644 (file)
@@ -1,5 +1,9 @@
 2019-12-07  Jan Hubicka  <hubicka@ucw.cz>
 
+       * ipa-split.c (split_function): Preserve 0 tp_first_run.
+
+2019-12-07  Jan Hubicka  <hubicka@ucw.cz>
+
        * ipa-inline-analysis.c (do_estimate_edge_time): Silence overactive
        sanity check.
 
index 2310c1a..81a2448 100644 (file)
@@ -1369,7 +1369,8 @@ split_function (basic_block return_bb, class split_point *split_point,
 
 
   /* Let's take a time profile for splitted function.  */
-  node->tp_first_run = cur_node->tp_first_run + 1;
+  if (cur_node->tp_first_run)
+    node->tp_first_run = cur_node->tp_first_run + 1;
 
   /* For usual cloning it is enough to clear builtin only when signature
      changes.  For partial inlining we however cannot expect the part