From 2a1f8b6bca3e10f7380a7165a3cb376a94ef6a39 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Thu, 29 Oct 1992 21:56:18 -0500 Subject: [PATCH] (reload): If FP was eliminated, remove it from being live in any basic block. From-SVN: r2656 --- gcc/reload1.c | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 -- 2.30.2