From: Richard Kenner Date: Fri, 30 Oct 1992 02:56:18 +0000 (-0500) Subject: (reload): If FP was eliminated, remove it from being live in any basic X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2a1f8b6bca3e10f7380a7165a3cb376a94ef6a39;p=gcc.git (reload): If FP was eliminated, remove it from being live in any basic block. From-SVN: r2656 --- diff --git a/gcc/reload1.c b/gcc/reload1.c index f1933d730f2..c065da8ad11 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -1805,6 +1805,17 @@ reload (first, global, dumpfile) || caller_save_spill_class != NO_REGS) reload_as_needed (first, global); + /* If we were able to eliminate the frame pointer, show that it is no + longer live at the start of any basic block. If it ls live by + virtue of being in a pseudo, that pseudo will be marked live + and hence the frame pointer will be known to be live via that + pseudo. */ + + if (! frame_pointer_needed) + for (i = 0; i < n_basic_blocks; i++) + basic_block_live_at_start[i][FRAME_POINTER_REGNUM / REGSET_ELT_BITS] + &= ~ ((REGSET_ELT_TYPE) 1 << (FRAME_POINTER_REGNUM % REGSET_ELT_BITS)); + reload_in_progress = 0; /* Come here (with failure set nonzero) if we can't get enough spill regs