aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2017-06-09 13:38:35 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2017-06-09 11:38:35 +0000
commitffb9d1b140d2bd299642c001c1a79de4c2c81871 (patch)
tree886859fb9516d906dca0fefdd5ab571bbc8f687a /gcc
parent323eb0898cb8d1869ae5354b36f390940d29f7d1 (diff)
downloadgcc-ffb9d1b140d2bd299642c001c1a79de4c2c81871.zip
gcc-ffb9d1b140d2bd299642c001c1a79de4c2c81871.tar.gz
gcc-ffb9d1b140d2bd299642c001c1a79de4c2c81871.tar.bz2
profile.c (edge_gcov_counts): Turn to pointer.
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/profile.c6
-rw-r--r--gcc/profile.h4
3 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f62b6d5..73bf358 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
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.
2017-06-09 Richard Biener <rguenther@suse.de>
diff --git a/gcc/profile.c b/gcc/profile.c
index d0dc3b8..d6f2084 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -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 ();
diff --git a/gcc/profile.h b/gcc/profile.h
index 5ff806e..4e3f482 100644
--- a/gcc/profile.h
+++ b/gcc/profile.h
@@ -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;