diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-09-11 16:58:57 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-09-11 16:58:57 +0000 |
commit | e76f35e8d4be0b7032d74033a0ebedc704134961 (patch) | |
tree | e55ae3fa06b243cd5fe8bf5b133011184ac58d17 /gcc/cfgbuild.c | |
parent | bb2821c04b6546dd5f014b99ab45d6ef5c55f874 (diff) | |
download | gcc-e76f35e8d4be0b7032d74033a0ebedc704134961.tar.gz |
* basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
(EDGE_CRITICAL_P): New predicate.
* cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
handling.
(insert_insn_on_edge): Use EDGE_CRITICAL_P.
(dump_edge_info): Remove "crit".
* cfganal.c (mark_critical_edges): Kill.
* cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
* cfgcleanup.c (cleanup_cfg): Likewise.
* profile.c (instrument_edges): Use EDGE_CRITICAL_P.
(find_spanning_tree): Likewise.
* reg-stack.c (convert_regs_1): Likewise.
* ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
* basic-block.h (create_basic_block_structure): New.
(create_basic_block): Update prototype.
(force_nonfallthru): New.
* bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
* cfg.c (create_basic_block_structure): Rename from create_basic_block;
handle updating of block_for_insn, creating of empty BBs and BBs at
the end of INSN chain.
(create_basic_block): New function.
(split_block): Use create_basic_block.
(force_nonfallthru_and_redirect): Break out from ...; cleanup
(redirect_edge_and_branch_force): ... here.
(force_nonfallthru): New.
(split_edge): Rewrite to use force_nonfallthru and create_block.
* cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
(find_basic_blocks): Free basic_block_for_insn.
* cfgcleanup.c (merge_blocks): Use force_nonfallthru.
* cfg.c: Fix formating.
* cfgcleanup.c: Fix formating.
(merge_blocks, tail_recursion_label_p): Return bool.
(merge_blocks_move_predecessor_nojumps,
merge_blocks_move_successor_nojumps): Return void.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45549 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgbuild.c')
-rw-r--r-- | gcc/cfgbuild.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/cfgbuild.c b/gcc/cfgbuild.c index ea1c7327b34..a6ac3a08f64 100644 --- a/gcc/cfgbuild.c +++ b/gcc/cfgbuild.c @@ -452,7 +452,7 @@ find_basic_blocks_1 (f) to a barrier or some such, no need to do it again. */ if (head != NULL_RTX) { - create_basic_block (i++, head, end, bb_note); + create_basic_block_structure (i++, head, end, bb_note); bb_note = NULL_RTX; } @@ -523,7 +523,7 @@ find_basic_blocks_1 (f) end = insn; new_bb_exclusive: - create_basic_block (i++, head, end, bb_note); + create_basic_block_structure (i++, head, end, bb_note); head = end = NULL_RTX; bb_note = NULL_RTX; break; @@ -579,7 +579,7 @@ find_basic_blocks_1 (f) } if (head != NULL_RTX) - create_basic_block (i++, head, end, bb_note); + create_basic_block_structure (i++, head, end, bb_note); else if (bb_note) flow_delete_insn (bb_note); @@ -604,6 +604,10 @@ find_basic_blocks (f, nregs, file) int max_uid; timevar_push (TV_CFG); + if (basic_block_for_insn) + VARRAY_FREE (basic_block_for_insn); + basic_block_for_insn = 0; + /* Flush out existing data. */ if (basic_block_info != NULL) { @@ -655,8 +659,6 @@ find_basic_blocks (f, nregs, file) here and cleanup_cfg, e.g. thread_prologue_and_epilogue_insns. */ tidy_fallthru_edges (); - mark_critical_edges (); - #ifdef ENABLE_CHECKING verify_flow_info (); #endif |