From 35b6b437aa03e95ab2eb6fa5acaf25e07a9b1433 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Mon, 26 Jul 2004 14:34:19 +0000 Subject: 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 --- gcc/cfglayout.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'gcc/cfglayout.c') diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c index 457305c1087..a81ce4c7f8c 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. */ -- cgit v1.2.1