diff options
author | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-11-22 22:04:21 +0000 |
---|---|---|
committer | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-11-22 22:04:21 +0000 |
commit | 26b12c910165d4ddace8a2a683dd072c0da89bb9 (patch) | |
tree | 712b6c41059aafe8583821534fb80e3194ae272d /gcc/cfghooks.h | |
parent | 1af6dc83bcc7707a772adb1d76d9484294e388c3 (diff) | |
download | gcc-26b12c910165d4ddace8a2a683dd072c0da89bb9.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91035 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfghooks.h')
-rw-r--r-- | gcc/cfghooks.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/cfghooks.h b/gcc/cfghooks.h index 7cbe700df36..92a458ed4aa 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; |