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 f051c233c77196e0a5b1a3ce37d6e32a034b3627..416e7d6f54347ef88f1bb30ba5aaf25993829cca 100644 (file)
@@ -1,3 +1,7 @@
+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
index 2310c1abd0e1f6546db76665cd25f2d0e2d7c830..81a2448cc2857cbcbc2fef504db732a0393b7e7a 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