summaryrefslogtreecommitdiff
path: root/gcc/gcov-io.c
diff options
context:
space:
mode:
authortejohnson <tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-30 16:47:04 +0000
committertejohnson <tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-30 16:47:04 +0000
commite3ba12e80a90f1532865f5bc28c9987b84050f48 (patch)
tree2f91f256a35f639f54c8da185d2974983b74c68a /gcc/gcov-io.c
parent1880b11417735de013fdc5e34b3ee8274c3ce03f (diff)
Revised patch to ensure that histograms from the profile summary are streamed
through the LTO files so that the working set can be computed for use in downstream optimizations. 2012-11-30 Teresa Johnson <tejohnson@google.com> * lto-cgraph.c (output_profile_summary): Stream out sum_all and histogram. (input_profile_summary): Stream in sum_all and histogram. (merge_profile_summaries): Merge sum_all and histogram, and change to use RDIV. (input_symtab): Call compute_working_sets after merging summaries. * gcov-io.c (gcov_histo_index): Make extern for compiler. * gcov-io.h (gcov_histo_index): Ditto. * profile.c (compute_working_sets): Remove static keyword. * profile.h (compute_working_sets): Ditto. * Makefile.in (lto-cgraph.o): Depend on profile.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193999 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gcov-io.c')
-rw-r--r--gcc/gcov-io.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/gcc/gcov-io.c b/gcc/gcov-io.c
index 109401c62b5e..f45c32cc1e55 100644
--- a/gcc/gcov-io.c
+++ b/gcc/gcov-io.c
@@ -622,11 +622,15 @@ gcov_time (void)
}
#endif /* IN_GCOV */
-#if IN_LIBGCOV || !IN_GCOV
+#if !IN_GCOV
/* Determine the index into histogram for VALUE. */
+#if IN_LIBGCOV
static unsigned
-gcov_histo_index(gcov_type value)
+#else
+GCOV_LINKAGE unsigned
+#endif
+gcov_histo_index (gcov_type value)
{
gcov_type_unsigned v = (gcov_type_unsigned)value;
unsigned r = 0;
@@ -664,8 +668,8 @@ gcov_histo_index(gcov_type value)
its entry's original cumulative counter value when computing the
new merged cum_value. */
-static void gcov_histogram_merge(gcov_bucket_type *tgt_histo,
- gcov_bucket_type *src_histo)
+static void gcov_histogram_merge (gcov_bucket_type *tgt_histo,
+ gcov_bucket_type *src_histo)
{
int src_i, tgt_i, tmp_i = 0;
unsigned src_num, tgt_num, merge_num;
@@ -801,4 +805,4 @@ static void gcov_histogram_merge(gcov_bucket_type *tgt_histo,
/* Finally, copy the merged histogram into tgt_histo. */
memcpy(tgt_histo, tmp_histo, sizeof (gcov_bucket_type) * GCOV_HISTOGRAM_SIZE);
}
-#endif /* IN_LIBGCOV || !IN_GCOV */
+#endif /* !IN_GCOV */