aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfghooks.h
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2004-11-22 22:04:21 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2004-11-22 22:04:21 +0000
commitd9d4706fa5e5e9db60e0d6a4ad742928f07042dc (patch)
tree712b6c41059aafe8583821534fb80e3194ae272d /gcc/cfghooks.h
parentb31997c0dca31350faba5f7859acbd6109f9039e (diff)
downloadgcc-d9d4706fa5e5e9db60e0d6a4ad742928f07042dc.zip
gcc-d9d4706fa5e5e9db60e0d6a4ad742928f07042dc.tar.gz
gcc-d9d4706fa5e5e9db60e0d6a4ad742928f07042dc.tar.bz2
cfg.c (unchecked_make_edge): Call execute_on_growing_pred after making an edge.
* cfg.c (unchecked_make_edge): Call execute_on_growing_pred after making an edge. (remove_edge): Call execute_on_shrinking_pred before removing an edge. (redirect_edge_succ): Call execute_on_growing_pred and execute_on_shrinking_pred. * cfghooks.c (execute_on_growing_pred): New. (execute_on_shrinking_pred): Likewise. * cfghooks.h (cfg_hooks): Add execute_on_growing_pred and execute_on_shrinking_pred. Add prototypes for execute_on_growing_pred and execute_on_shrinking_pred. * cfgrtl.c (rtl_cfg_hooks): Add NULL hooks to execute_on_growing_pred and execute_on_shrinking_pred. (cfg_layout_rtl_cfg_hook): Likewise. * tree-cfg.c (tree_cfg_hooks): Likewise. From-SVN: r91035
Diffstat (limited to 'gcc/cfghooks.h')
-rw-r--r--gcc/cfghooks.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/cfghooks.h b/gcc/cfghooks.h
index 7cbe700..92a458e 100644
--- a/gcc/cfghooks.h
+++ b/gcc/cfghooks.h
@@ -100,6 +100,14 @@ struct cfg_hooks
The goal is to expose cases in which entering a basic block does not imply
that all subsequent instructions must be executed. */
int (*flow_call_edges_add) (sbitmap);
+
+ /* This function is called immediately after edge E is added to the
+ edge vector E->dest->preds. */
+ void (*execute_on_growing_pred) (edge);
+
+ /* This function is called immediately before edge E is removed from
+ the edge vector E->dest->preds. */
+ void (*execute_on_shrinking_pred) (edge);
};
extern void verify_flow_info (void);
@@ -126,6 +134,8 @@ extern basic_block duplicate_block (basic_block, edge);
extern bool block_ends_with_call_p (basic_block bb);
extern bool block_ends_with_condjump_p (basic_block bb);
extern int flow_call_edges_add (sbitmap);
+extern void execute_on_growing_pred (edge);
+extern void execute_on_shrinking_pred (edge);
/* Hooks containers. */
extern struct cfg_hooks tree_cfg_hooks;