This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
bootstrap fix for ppc
- To: gcc at gcc dot gnu dot org
- Subject: bootstrap fix for ppc
- From: Geoff Keating <geoffk at cygnus dot com>
- Date: Wed, 8 Mar 2000 17:50:59 -0800
I've found the bootstrap problem on ppc. It is this chunk of code in
flow.c which I added some months ago:
/* If this label was attached to an ADDR_VEC, it's
safe to delete the ADDR_VEC. In fact, it's pretty
much mandatory to delete it, because the ADDR_VEC may
be referencing labels that no longer exist. */
if (LABEL_NUSES (label) == 0
&& (next = next_nonnote_insn (label)) != NULL
&& GET_CODE (next) == JUMP_INSN
&& (GET_CODE (PATTERN (next)) == ADDR_VEC
|| GET_CODE (PATTERN (next)) == ADDR_DIFF_VEC))
{
rtx pat = PATTERN (next);
int diff_vec_p = GET_CODE (pat) == ADDR_DIFF_VEC;
int len = XVECLEN (pat, diff_vec_p);
int i;
for (i = 0; i < len; i++)
LABEL_NUSES (XEXP (XVECEXP (pat, diff_vec_p, i), 0))--;
PUT_CODE (next, NOTE);
NOTE_LINE_NUMBER (next) = NOTE_INSN_DELETED;
NOTE_SOURCE_FILE (next) = 0;
}
The problem is that it's deleting the ADDR_VEC but not the BARRIER
after it. I'm trying to decide whether to patch it one more time or
rewrite the whole ADDR_VEC thing...
--
- Geoffrey Keating <geoffk@cygnus.com>