This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Patch: disable invalid REG_EQUAL note
- From: Dale Johannesen <dalej at apple dot com>
- To: "gcc-patches at gcc dot gnu dot org Patches" <gcc-patches at gcc dot gnu dot org>
- Cc: Dale Johannesen <dalej at apple dot com>
- Date: Thu, 29 Apr 2004 17:55:28 -0700
- Subject: Patch: disable invalid REG_EQUAL note
This addresses a bug that shows up building perlbmk (SPEC) in LNO
branch.
cse pastes together the high and low parts of
(CONST (MINUS (LABEL_REF) (0)))
each valid in context, into a REG_EQUAL; this propagates into the RHS
of an
assignment without being validated, and since it is not in fact valid,
an ICE results.
There's already a case where a similar pasting is disallowed, so I'd
like to add
this one. (I don't know why it happens only in LNO branch.)
(It seems obvious to approach this instead by getting rid of the
redundant MINUS 0,
but that turns out to lead into some very dusty twisty little passages
of the
darwin-specific address generation code.) Bootstrapped and tested on
darwin.
2004-04-29 Dale Johannesen <dalej@apple.com>
* cse.c (cse_insn): Disallow construction of
(CONST (MINUS (LABEL_REF) (0))) in a REG_EQUAL note.
Attachment:
diff2.txt
Description: Text document