diff options
author | J"orn Rennecke <amylaar@cygnus.co.uk> | 1998-12-12 23:26:22 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-12-12 16:26:22 -0700 |
commit | 404d95c460ef703090e65330dc8bf759d74dd53e (patch) | |
tree | 83ef54912c3690571649509c2c17461566eeec2e /gcc/reload1.c | |
parent | 4566eb621bdc2c7eb5bd937c4888b3f5070bcb9d (diff) | |
download | gcc-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.c | 18 |
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); + } }); } |