aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgbuild.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cfgbuild.c')
-rw-r--r--gcc/cfgbuild.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/cfgbuild.c b/gcc/cfgbuild.c
index ea1c732..a6ac3a0 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