summaryrefslogtreecommitdiff
path: root/gcc/cfghooks.h
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2012-10-09 20:37:11 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2012-10-09 20:37:11 +0000
commitaa4723d7f56dd0c690c514b50c917c827a3d56dd (patch)
tree784313dcb1809538918556fac30dbf561f9d8332 /gcc/cfghooks.h
parentca4277584fa6e046279dd3e75fdaa53881d9eaf3 (diff)
* basic-block. (profile_record): New struct, moved from passes.c.
* cfghooks.h (struct cfg_hooks) <account_profile_record>: New hook. (account_profile_record): New prototype. * cfghooks.c (account_profile_record): New function. * tree-cfg.c (gimple_account_profile_record): New function (gimple_cfg_hooks): Add it. * cfgrtl.c (rtl_account_profile_record): New function (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Add it. * passes.c (check_profile_consistency): Simplify. Move IR-dependent code around using cfghooks machinery. From-SVN: r192271
Diffstat (limited to 'gcc/cfghooks.h')
-rw-r--r--gcc/cfghooks.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/cfghooks.h b/gcc/cfghooks.h
index 951bdf6e17d..2806c4f27c5 100644
--- a/gcc/cfghooks.h
+++ b/gcc/cfghooks.h
@@ -145,6 +145,9 @@ struct cfg_hooks
/* Split a basic block if it ends with a conditional branch and if
the other part of the block is not empty. */
basic_block (*split_block_before_cond_jump) (basic_block);
+
+ /* Do book-keeping of a basic block for the profile consistency checker. */
+ void (*account_profile_record) (basic_block, int, struct profile_record *);
};
extern void verify_flow_info (void);
@@ -198,6 +201,8 @@ extern void copy_bbs (basic_block *, unsigned, basic_block *,
edge *, unsigned, edge *, struct loop *,
basic_block);
+void account_profile_record (struct profile_record *, int);
+
extern void cfg_layout_initialize (unsigned int);
extern void cfg_layout_finalize (void);