Hello,
this is a small patchset that prepares API for new IPA Identical code folding
pass. The patch adds an argument for coverage_compute_cfg_checksum.
Bootstrapped and tested on x86_64-linux.
OK for trunk?
Thanks,
Martin
2014-05-29 Martin Liska <mli...@suse.cz>
* coverage.h (coverage_compute_cfg_checksum): Argument added.
* coverage.c (coverage_compute_cfg_checksum): Likewise.
* profile.c (branch_prob): Likewise.
diff --git a/gcc/coverage.c b/gcc/coverage.c
index 5e9005e..9d81387 100644
--- a/gcc/coverage.c
+++ b/gcc/coverage.c
@@ -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 81f87a6..392080c 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 given as argument. */
+extern unsigned coverage_compute_cfg_checksum (struct function *);
/* 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
--
1.8.4.5