From 404d95c460ef703090e65330dc8bf759d74dd53e Mon Sep 17 00:00:00 2001 From: "J\"orn Rennecke" Date: Sat, 12 Dec 1998 23:26:22 +0000 Subject: [PATCH] reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0 after reload. * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0 after reload. From-SVN: r24287 --- gcc/ChangeLog | 5 +++++ gcc/reload1.c | 18 ++++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 230ba3e8854..41b4cc9d490 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Sun Dec 13 00:24:14 1998 J"orn Rennecke + + * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0 + after reload. + Sat Dec 12 23:39:10 1998 Jeffrey A Law (law@cygnus.com) * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character. diff --git a/gcc/reload1.c b/gcc/reload1.c index dca868526d7..5f1e7b9ba4f 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -536,10 +536,20 @@ compute_use_by_pseudos (to, from) int r = reg_renumber[regno]; int nregs; if (r < 0) - abort (); - nregs = HARD_REGNO_NREGS (r, PSEUDO_REGNO_MODE (regno)); - while (nregs-- > 0) - SET_HARD_REG_BIT (*to, r + nregs); + { + /* reload_combine uses the information from + basic_block_live_at_start, which might still contain registers + that have not actually been allocated since they have an + equivalence. */ + if (! reload_completed) + abort (); + } + else + { + nregs = HARD_REGNO_NREGS (r, PSEUDO_REGNO_MODE (regno)); + while (nregs-- > 0) + SET_HARD_REG_BIT (*to, r + nregs); + } }); }