aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1996-01-24 12:11:09 -0800
committerJim Wilson <wilson@gcc.gnu.org>1996-01-24 12:11:09 -0800
commit8b4f9969f1d80d723e05ba143823435024c12949 (patch)
treef9c42f2295c1710f47066b3f327fcc7df6905e79
parentc170c8c2082ab34698e648b534c585e7eabcd3bc (diff)
downloadgcc-8b4f9969f1d80d723e05ba143823435024c12949.zip
gcc-8b4f9969f1d80d723e05ba143823435024c12949.tar.gz
gcc-8b4f9969f1d80d723e05ba143823435024c12949.tar.bz2
(used_spill_regs): New variable.
(reload): Set it. From-SVN: r11092
-rw-r--r--gcc/reload1.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 3f5403c..2058103 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -170,6 +170,13 @@ static HARD_REG_SET bad_spill_regs;
elements that are actually valid; new ones are added at the end. */
static short spill_regs[FIRST_PSEUDO_REGISTER];
+/* This reg set indicates those registers that have been used a spill
+ registers. This information is used in reorg.c, to help figure out
+ what registers are live at any point. It is assumed that all spill_regs
+ are dead at every CODE_LABEL. */
+
+HARD_REG_SET used_spill_regs;
+
/* Index of last register assigned as a spill register. We allocate in
a round-robin fashion. */
@@ -2026,6 +2033,10 @@ reload (first, global, dumpfile)
free (scratch_block);
scratch_block = 0;
+ CLEAR_HARD_REG_SET (used_spill_regs);
+ for (i = 0; i < n_spills; i++)
+ SET_HARD_REG_BIT (used_spill_regs, spill_regs[i]);
+
return failure;
}