diff options
author | Richard Sandiford <rsandifo@redhat.com> | 2004-07-26 14:34:19 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2004-07-26 14:34:19 +0000 |
commit | 35b6b437aa03e95ab2eb6fa5acaf25e07a9b1433 (patch) | |
tree | 4287b222452a3f92e4472b74970cdf9826728da2 /gcc/cfglayout.c | |
parent | fa0a2ae5e38f358c9c1b1480a6c5b291ea5201bd (diff) | |
download | gcc-35b6b437aa03e95ab2eb6fa5acaf25e07a9b1433.zip gcc-35b6b437aa03e95ab2eb6fa5acaf25e07a9b1433.tar.gz gcc-35b6b437aa03e95ab2eb6fa5acaf25e07a9b1433.tar.bz2 |
re PR rtl-optimization/16643 (verify_local_live_at_start ICE after crossjumping & cfgcleanup)
PR rtl-optimization/16643
* cfglayout.h (cfg_layout_initialize): Add a flags parameter.
* cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
* basic-block.h (reorder_basic_blocks): Add a flags parameter.
* cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
(partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
* rtl.h (tracer): Add a flags parameter.
* tracer.c (tracer): Pass it to cfg_layout_initialise.
* passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
(rest_of_handle_reorder_blocks): Update calls to tracer and
reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
(rest_of_handle_tracer): Pass 0 to tracer.
(rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
From-SVN: r85191
Diffstat (limited to 'gcc/cfglayout.c')
-rw-r--r-- | gcc/cfglayout.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c index 457305c..a81ce4c 100644 --- a/gcc/cfglayout.c +++ b/gcc/cfglayout.c @@ -1133,11 +1133,15 @@ cfg_layout_duplicate_bb (basic_block bb) return new_bb; } -/* Main entry point to this module - initialize the data structures for - CFG layout changes. It keeps LOOPS up-to-date if not null. */ +/* Main entry point to this module - initialize the datastructures for + CFG layout changes. It keeps LOOPS up-to-date if not null. + + FLAGS is a set of additional flags to pass to cleanup_cfg(). It should + include CLEANUP_UPDATE_LIFE if liveness information must be kept up + to date. */ void -cfg_layout_initialize (void) +cfg_layout_initialize (unsigned int flags) { basic_block bb; @@ -1152,7 +1156,7 @@ cfg_layout_initialize (void) record_effective_endpoints (); - cleanup_cfg (CLEANUP_CFGLAYOUT); + cleanup_cfg (CLEANUP_CFGLAYOUT | flags); } /* Splits superblocks. */ |