This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]