mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-13 01:05:06 +08:00
flow.c (update_life_info): Zap life info after cleanup_cfg.
* flow.c (update_life_info): Zap life info after cleanup_cfg. (regno_uninitialized): Use correct live at function entry set. (regno_clobbered_at_setjmp): Likewise. From-SVN: r62172
This commit is contained in:
parent
6bc8279340
commit
cdd1f01b22
@ -1,3 +1,11 @@
|
||||
2003-01-30 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* flow.c (update_life_info): Zap life info after cleanup_cfg.
|
||||
(regno_uninitialized): Use correct live at function entry set.
|
||||
(regno_clobbered_at_setjmp): Likewise.
|
||||
|
||||
* expr.c (store_expr): Promote all MEM intermediates to regs.
|
||||
|
||||
2003-01-30 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* config/arm/arm.c: Fix comment typos.
|
||||
|
14
gcc/flow.c
14
gcc/flow.c
@ -693,6 +693,16 @@ update_life_info (blocks, extent, prop_flags)
|
||||
partial improvement (see MAX_MEM_SET_LIST_LEN usage).
|
||||
Further improvement may be possible. */
|
||||
cleanup_cfg (CLEANUP_EXPENSIVE);
|
||||
|
||||
/* Zap the life information from the last round. If we don't
|
||||
do this, we can wind up with registers that no longer appear
|
||||
in the code being marked live at entry, which twiggs bogus
|
||||
warnings from regno_uninitialized. */
|
||||
FOR_EACH_BB (bb)
|
||||
{
|
||||
CLEAR_REG_SET (bb->global_live_at_start);
|
||||
CLEAR_REG_SET (bb->global_live_at_end);
|
||||
}
|
||||
}
|
||||
|
||||
/* If asked, remove notes from the blocks we'll update. */
|
||||
@ -2379,7 +2389,7 @@ regno_uninitialized (regno)
|
||||
|| FUNCTION_ARG_REGNO_P (regno))))
|
||||
return 0;
|
||||
|
||||
return REGNO_REG_SET_P (ENTRY_BLOCK_PTR->next_bb->global_live_at_start, regno);
|
||||
return REGNO_REG_SET_P (ENTRY_BLOCK_PTR->global_live_at_end, regno);
|
||||
}
|
||||
|
||||
/* 1 if register REGNO was alive at a place where `setjmp' was called
|
||||
@ -2394,7 +2404,7 @@ regno_clobbered_at_setjmp (regno)
|
||||
return 0;
|
||||
|
||||
return ((REG_N_SETS (regno) > 1
|
||||
|| REGNO_REG_SET_P (ENTRY_BLOCK_PTR->next_bb->global_live_at_start, regno))
|
||||
|| REGNO_REG_SET_P (ENTRY_BLOCK_PTR->global_live_at_end, regno))
|
||||
&& REGNO_REG_SET_P (regs_live_at_setjmp, regno));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user