summaryrefslogtreecommitdiff
path: root/gcc/cfghooks.h
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-07 21:11:51 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-07 21:11:51 +0000
commit202bbc063702f3adafb54ddc86142c04a77a1315 (patch)
tree145e2606d4e9bb3d9ec4665487247f62c68485dd /gcc/cfghooks.h
parent4f6248d5d3c9254f187ee1a4d668a30f3b889944 (diff)
downloadgcc-202bbc063702f3adafb54ddc86142c04a77a1315.tar.gz
* basic-block.h (force_nonfallthru): Move to...
* cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook. (force_nonfallthru): ...here. * cfghooks.c (force_nonfallthru): New function. * cfgrtl.c (force_nonfallthru): Rename into... (rtl_force_nonfallthru): ...this. (commit_one_edge_insertion): Do not set AUX field. (commit_edge_insertions): Do not discover new basic blocks. (rtl_cfg_hooks): Add rtl_force_nonfallthru. (cfg_layout_rtl_cfg_hooks): Likewise. * function.c (thread_prologue_and_epilogue_insns): Remove bogus ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns. * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172128 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfghooks.h')
-rw-r--r--gcc/cfghooks.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/cfghooks.h b/gcc/cfghooks.h
index 574176805e2..9fd81acb0d3 100644
--- a/gcc/cfghooks.h
+++ b/gcc/cfghooks.h
@@ -85,9 +85,12 @@ struct cfg_hooks
basic_block (*split_edge) (edge);
void (*make_forwarder_block) (edge);
- /* Tries to make the edge fallthru. */
+ /* Try to make the edge fallthru. */
void (*tidy_fallthru_edge) (edge);
+ /* Make the edge non-fallthru. */
+ basic_block (*force_nonfallthru) (edge);
+
/* Say whether a block ends with a call, possibly followed by some
other code that must stay with the call. */
bool (*block_ends_with_call_p) (basic_block);
@@ -156,6 +159,7 @@ extern bool can_merge_blocks_p (basic_block, basic_block);
extern void merge_blocks (basic_block, basic_block);
extern edge make_forwarder_block (basic_block, bool (*)(edge),
void (*) (basic_block));
+extern basic_block force_nonfallthru (edge);
extern void tidy_fallthru_edge (edge);
extern void tidy_fallthru_edges (void);
extern void predict_edge (edge e, enum br_predictor predictor, int probability);