profile.c (edge_gcov_counts): Turn to pointer.
authorJan Hubicka <hubicka@ucw.cz>
Fri, 9 Jun 2017 11:38:35 +0000 (13:38 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Fri, 9 Jun 2017 11:38:35 +0000 (11:38 +0000)
* profile.c (edge_gcov_counts): Turn to pointer.
(compute_branch_probabilities, compute_branch_probabilities): Update.
* profile.h (edge_gcov_counts): Turn to pointer.
(edge_gcov_count): Update.

From-SVN: r249056

gcc/ChangeLog
gcc/profile.c
gcc/profile.h

index f62b6d5982451bef37ea69c99dba7c30c78a096c..73bf358ec5799e4324fbd052442a3321d220d469 100644 (file)
@@ -1,3 +1,10 @@
+2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
+
+       * profile.c (edge_gcov_counts): Turn to pointer.
+       (compute_branch_probabilities, compute_branch_probabilities): Update.
+       * profile.h (edge_gcov_counts): Turn to pointer.
+       (edge_gcov_count): Update.
+
 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
 
        * gimple.h (gimple_check_failed): Mark cold.
index d0dc3b835b3580e7c7347d40e01d088bee7bc4e6..d6f2084a47d3e2cf249cac7e979fd27534c5c62f 100644 (file)
@@ -69,7 +69,7 @@ along with GCC; see the file COPYING3.  If not see
 
 /* Map from BBs/edges to gcov counters.  */
 vec<gcov_type> bb_gcov_counts;
-hash_map<edge,gcov_type> edge_gcov_counts;
+hash_map<edge,gcov_type> *edge_gcov_counts;
 
 struct bb_profile_info {
   unsigned int count_valid : 1;
@@ -532,6 +532,7 @@ compute_branch_probabilities (unsigned cfg_checksum, unsigned lineno_checksum)
     return;
 
   bb_gcov_counts.safe_grow_cleared (last_basic_block_for_fn (cfun));
+  edge_gcov_counts = new hash_map<edge,gcov_type>;
 
   if (profile_info->sum_all < profile_info->sum_max)
     {
@@ -836,7 +837,8 @@ compute_branch_probabilities (unsigned cfg_checksum, unsigned lineno_checksum)
         e->count = profile_count::from_gcov_type (edge_gcov_count (e));
     }
   bb_gcov_counts.release ();
-  edge_gcov_counts.empty ();
+  delete edge_gcov_counts;
+  edge_gcov_counts = NULL;
 
   counts_to_freqs ();
 
index 5ff806e5535d77977c197152690feafd5069477b..4e3f482fa5afde61ebbf8587bd42755ea0f6f366 100644 (file)
@@ -40,13 +40,13 @@ struct edge_profile_info
 /* Helpers annotating edges/basic blocks to GCOV counts.  */
 
 extern vec<gcov_type> bb_gcov_counts;
-extern hash_map<edge,gcov_type> edge_gcov_counts;
+extern hash_map<edge,gcov_type> *edge_gcov_counts;
 
 inline gcov_type &
 edge_gcov_count (edge e)
 {
   bool existed;
-  gcov_type &c = edge_gcov_counts.get_or_insert (e, &existed);
+  gcov_type &c = edge_gcov_counts->get_or_insert (e, &existed);
   if (!existed)
     c = 0;
   return c;