diff options
author | Richard Henderson <rth@cygnus.com> | 2000-04-07 02:23:29 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-04-07 02:23:29 -0700 |
commit | a18820c64c3148a53112cb1f740d2b03a5c08538 (patch) | |
tree | 11b24e45dc8d9d1e3c4634bb9728e6215d582c0c /gcc/gcse.c | |
parent | dc108b7a752864a4d586d5c30325030b42d6c395 (diff) | |
download | gcc-a18820c64c3148a53112cb1f740d2b03a5c08538.zip gcc-a18820c64c3148a53112cb1f740d2b03a5c08538.tar.gz gcc-a18820c64c3148a53112cb1f740d2b03a5c08538.tar.bz2 |
gcse.c (gcse_main): Don't rebuild the CFG here.
* gcse.c (gcse_main): Don't rebuild the CFG here.
(delete_null_pointer_checks): Likewise.
* ssa.c (convert_to_ssa): Likewise.
* toplev.c (rest_of_compilation): Do it here instead. Combine
sequential calls to TIMEVAR. Consistently use `insns' instead of
`get_insns()'. Always split insns after reload when optimizing.
From-SVN: r32995
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r-- | gcc/gcse.c | 32 |
1 files changed, 4 insertions, 28 deletions
@@ -669,18 +669,13 @@ gcse_main (f, file) /* Identify the basic block information for this function, including successors and predecessors. */ max_gcse_regno = max_reg_num (); - find_basic_blocks (f, max_gcse_regno, file); - cleanup_cfg (f); if (file) dump_flow_info (file); /* Return if there's nothing to do. */ if (n_basic_blocks <= 1) - { - free_basic_block_vars (0); - return 0; - } + return 0; /* Trying to perform global optimizations on flow graphs which have a high connectivity will take a long time and is unlikely to be @@ -691,10 +686,7 @@ gcse_main (f, file) a couple switch statements. So we require a relatively large number of basic blocks and the ratio of edges to blocks to be high. */ if (n_basic_blocks > 1000 && n_edges / n_basic_blocks >= 20) - { - free_basic_block_vars (0); - return 0; - } + return 0; /* See what modes support reg/reg copy operations. */ if (! can_copy_init_p) @@ -807,7 +799,6 @@ gcse_main (f, file) obstack_free (&gcse_obstack, NULL_PTR); free_reg_set_mem (); - free_basic_block_vars (0); return run_jump_opt_after_gcse; } @@ -5070,17 +5061,9 @@ delete_null_pointer_checks (f) int max_reg; struct null_pointer_info npi; - /* First break the program into basic blocks. */ - find_basic_blocks (f, max_reg_num (), NULL); - cleanup_cfg (f); - /* If we have only a single block, then there's nothing to do. */ if (n_basic_blocks <= 1) - { - /* Free storage allocated by find_basic_blocks. */ - free_basic_block_vars (0); - return; - } + return; /* Trying to perform global optimizations on flow graphs which have a high connectivity will take a long time and is unlikely to be @@ -5091,11 +5074,7 @@ delete_null_pointer_checks (f) a couple switch statements. So we require a relatively large number of basic blocks and the ratio of edges to blocks to be high. */ if (n_basic_blocks > 1000 && n_edges / n_basic_blocks >= 20) - { - /* Free storage allocated by find_basic_blocks. */ - free_basic_block_vars (0); - return; - } + return; /* We need four bitmaps, each with a bit for each register in each basic block. */ @@ -5152,9 +5131,6 @@ delete_null_pointer_checks (f) nonnull_avout, &npi); } - /* Free storage allocated by find_basic_blocks. */ - free_basic_block_vars (0); - /* Free the table of registers compared at the end of every block. */ free (block_reg); |