From 2d6c85d31464e0e26c381728795d959b14facf36 Mon Sep 17 00:00:00 2001 From: "J\"orn Rennecke" Date: Fri, 13 May 2005 16:56:11 +0000 Subject: re PR rtl-optimization/20769 (bt-load.c doesn't take nonlocal gotos into account.) PR rtl-optimization/20769: * bt-load.c (compute_defs_uses_and_gen): Check for the blockage pattern emitted by expand_nl_goto_receiver. PR middle-end/20793: * integrate.c (allocate_initial_values): Update register liveness information. From-SVN: r99668 --- gcc/integrate.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'gcc/integrate.c') diff --git a/gcc/integrate.c b/gcc/integrate.c index 86bb875670f..3573b443b95 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -392,11 +392,23 @@ allocate_initial_values (rtx *reg_equiv_memory_loc ATTRIBUTE_UNUSED) reg_equiv_memory_loc[regno] = x; else { + basic_block bb; + int new_regno; + gcc_assert (REG_P (x)); - reg_renumber[regno] = REGNO (x); + new_regno = REGNO (x); + reg_renumber[regno] = new_regno; /* Poke the regno right into regno_reg_rtx so that even fixed regs are accepted. */ - REGNO (ivs->entries[i].pseudo) = REGNO (x); + REGNO (ivs->entries[i].pseudo) = new_regno; + /* Update global register liveness information. */ + FOR_EACH_BB (bb) + { + if (REGNO_REG_SET_P(bb->global_live_at_start, regno)) + SET_REGNO_REG_SET (bb->global_live_at_start, new_regno); + if (REGNO_REG_SET_P(bb->global_live_at_end, regno)) + SET_REGNO_REG_SET (bb->global_live_at_end, new_regno); + } } } } -- cgit v1.2.1