aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1998-12-12 23:26:22 +0000
committerJeff Law <law@gcc.gnu.org>1998-12-12 16:26:22 -0700
commit404d95c460ef703090e65330dc8bf759d74dd53e (patch)
tree83ef54912c3690571649509c2c17461566eeec2e /gcc/reload1.c
parent4566eb621bdc2c7eb5bd937c4888b3f5070bcb9d (diff)
downloadgcc-404d95c460ef703090e65330dc8bf759d74dd53e.zip
gcc-404d95c460ef703090e65330dc8bf759d74dd53e.tar.gz
gcc-404d95c460ef703090e65330dc8bf759d74dd53e.tar.bz2
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
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index dca8685..5f1e7b9 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);
+ }
});
}