aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/coverage.c8
-rw-r--r--gcc/coverage.h4
-rw-r--r--gcc/profile.c2
4 files changed, 13 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a4ae5a2..853a034 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-06-04 Martin Liska <mliska@suse.cz>
+
+ * coverage.h (coverage_compute_cfg_checksum): Argument added.
+ * coverage.c (coverage_compute_cfg_checksum): Likewise.
+ * profile.c (branch_prob): Likewise.
+
2014-06-04 Martin Jambor <mjambor@suse.cz>
PR ipa/61340
diff --git a/gcc/coverage.c b/gcc/coverage.c
index 5e9005e..44b616c 100644
--- a/gcc/coverage.c
+++ b/gcc/coverage.c
@@ -583,7 +583,7 @@ coverage_compute_profile_id (struct cgraph_node *n)
return chksum & 0x7fffffff;
}
-/* Compute cfg checksum for the current function.
+/* Compute cfg checksum for the function FN given as argument.
The checksum is calculated carefully so that
source code changes that doesn't affect the control flow graph
won't change the checksum.
@@ -594,12 +594,12 @@ coverage_compute_profile_id (struct cgraph_node *n)
but the compiler won't detect the change and use the wrong profile data. */
unsigned
-coverage_compute_cfg_checksum (void)
+coverage_compute_cfg_checksum (struct function *fn)
{
basic_block bb;
- unsigned chksum = n_basic_blocks_for_fn (cfun);
+ unsigned chksum = n_basic_blocks_for_fn (fn);
- FOR_EACH_BB_FN (bb, cfun)
+ FOR_EACH_BB_FN (bb, fn)
{
edge e;
edge_iterator ei;
diff --git a/gcc/coverage.h b/gcc/coverage.h
index 81f87a6f..a144e0b 100644
--- a/gcc/coverage.h
+++ b/gcc/coverage.h
@@ -32,8 +32,8 @@ extern int coverage_begin_function (unsigned, unsigned);
/* Complete the coverage information for the current function. */
extern void coverage_end_function (unsigned, unsigned);
-/* Compute the control flow checksum for the current function. */
-extern unsigned coverage_compute_cfg_checksum (void);
+/* Compute the control flow checksum for the function FN given as argument. */
+extern unsigned coverage_compute_cfg_checksum (struct function *fn);
/* Compute the profile id of function N. */
extern unsigned coverage_compute_profile_id (struct cgraph_node *n);
diff --git a/gcc/profile.c b/gcc/profile.c
index 3282ee7..4e82eab 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -1195,7 +1195,7 @@ branch_prob (void)
the checksum in only once place, since it depends on the shape
of the control flow which can change during
various transformations. */
- cfg_checksum = coverage_compute_cfg_checksum ();
+ cfg_checksum = coverage_compute_cfg_checksum (cfun);
lineno_checksum = coverage_compute_lineno_checksum ();
/* Write the data from which gcov can reconstruct the basic block