diff options
Diffstat (limited to 'gcc/cfgloop.c')
-rw-r--r-- | gcc/cfgloop.c | 43 |
1 files changed, 6 insertions, 37 deletions
diff --git a/gcc/cfgloop.c b/gcc/cfgloop.c index 9afd48ba217..25549db5b94 100644 --- a/gcc/cfgloop.c +++ b/gcc/cfgloop.c @@ -52,7 +52,6 @@ static bool glb_enum_p (basic_block, void *); static void flow_loops_cfg_dump (const struct loops *loops, FILE *file) { - int i; basic_block bb; if (! loops->num || ! file) @@ -68,26 +67,6 @@ flow_loops_cfg_dump (const struct loops *loops, FILE *file) fprintf (file, "%d ", succ->dest->index); fprintf (file, "}\n"); } - - /* Dump the DFS node order. */ - if (loops->cfg.dfs_order) - { - fputs (";; DFS order: ", file); - for (i = NUM_FIXED_BLOCKS; i < n_basic_blocks; i++) - fprintf (file, "%d ", loops->cfg.dfs_order[i]); - - fputs ("\n", file); - } - - /* Dump the reverse completion node order. */ - if (loops->cfg.rc_order) - { - fputs (";; RC order: ", file); - for (i = NUM_FIXED_BLOCKS; i < n_basic_blocks; i++) - fprintf (file, "%d ", loops->cfg.rc_order[i]); - - fputs ("\n", file); - } } /* Return nonzero if the nodes of LOOP are a subset of OUTER. */ @@ -208,12 +187,6 @@ flow_loops_free (struct loops *loops) free (loops->parray); loops->parray = NULL; - - if (loops->cfg.dfs_order) - free (loops->cfg.dfs_order); - if (loops->cfg.rc_order) - free (loops->cfg.rc_order); - } } @@ -697,10 +670,6 @@ flow_loops_find (struct loops *loops) rc_order = XNEWVEC (int, n_basic_blocks); pre_and_rev_post_order_compute (dfs_order, rc_order, false); - /* Save CFG derived information to avoid recomputing it. */ - loops->cfg.dfs_order = dfs_order; - loops->cfg.rc_order = rc_order; - num_loops = 1; for (b = 0; b < n_basic_blocks - NUM_FIXED_BLOCKS; b++) @@ -744,16 +713,14 @@ flow_loops_find (struct loops *loops) loops->num = num_loops; initialize_loops_parallel_p (loops); + + free (dfs_order); + free (rc_order); } sbitmap_free (headers); loops->state = 0; -#ifdef ENABLE_CHECKING - verify_flow_info (); - verify_loop_structure (loops); -#endif - return loops->num; } @@ -969,12 +936,13 @@ add_bb_to_loop (basic_block bb, struct loop *loop) { int i; + gcc_assert (bb->loop_father == NULL); bb->loop_father = loop; bb->loop_depth = loop->depth; loop->num_nodes++; for (i = 0; i < loop->depth; i++) loop->pred[i]->num_nodes++; - } +} /* Remove basic block BB from loops. */ void @@ -983,6 +951,7 @@ remove_bb_from_loops (basic_block bb) int i; struct loop *loop = bb->loop_father; + gcc_assert (loop != NULL); loop->num_nodes--; for (i = 0; i < loop->depth; i++) loop->pred[i]->num_nodes--; |