diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-26 03:34:33 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-26 03:34:33 +0000 |
commit | 075d20cf4f481517690d405e005928da35c44196 (patch) | |
tree | 6f09bc3a30550e07ac1b44c5aa7edd9d40f1e562 /gcc/basic-block.h | |
parent | 13688260e5f1c6274581e68821e356a24ee18459 (diff) | |
download | gcc-075d20cf4f481517690d405e005928da35c44196.tar.gz |
* bb-reorder.c (reorder_block_def): Reorder elements for size.
Remove add_jump; add next; replace flags with visited.
(rbd_init): Remove.
(REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
(REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
(REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
(REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
(RBI): New.
(reorder_index, reorder_last_visited): Remove.
(skip_insns_after_block): Rewrite to use a switch.
(get_common_dest): Remove.
(chain_reorder_blocks): Remove.
(record_effective_endpoints): Split out from reorder_basic_blocks.
(make_reorder_chain): Likewise. Loop until all blocks are placed.
(make_reorder_chain_1): Renamed from old make_reorder_chain.
Only construct the reorder chain, do not move insns. Try harder
to tail recurse.
(label_for_bb, emit_jump_to_block_after): New.
(fixup_reorder_chain): Use them. Do bulk block movement. Examine
and adjust the jump insns appropriately. Fixup basic_block_info.
(verify_insn_chain): Always define.
(relate_bbs_with_scopes): Call xmalloc, not xcalloc. Fix thinko
in allocation size.
(make_new_scope): Don't write zeros to calloc'd space.
(build_scope_forest): Rely on xrealloc to DTRT.
(reorder_basic_blocks): Don't build loop nest. Don't fail if
profile_arc_flag. Streamline EH test.
* flow.c (redirect_edge_succ, redirect_edge_pred): New.
* basic-block.h: Declare them.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34186 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r-- | gcc/basic-block.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h index fcdab68fe6e..5d6d2dfcc58 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -232,6 +232,8 @@ extern void flow_delete_insn_chain PARAMS ((rtx, rtx)); extern void make_edge PARAMS ((sbitmap *, basic_block, basic_block, int)); extern void remove_edge PARAMS ((edge)); +extern void redirect_edge_succ PARAMS ((edge, basic_block)); +extern void redirect_edge_pred PARAMS ((edge, basic_block)); extern void create_basic_block PARAMS ((int, rtx, rtx, rtx)); extern int flow_delete_block PARAMS ((basic_block)); extern void merge_blocks_nomove PARAMS ((basic_block, basic_block)); |