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] |
While syncing data between my laptop and my desktop, I found a lost patch. I believe the original context was mn10300, where SP may only be copied to ADDRESS_REGS, but not DATA_REGS, and SP may not be involved in any other arithmetic besides SP+=IMM. Thus when computing something like p0 = &local0 p1 = &local1 we get (set A0 SP) (set P0 IMM) (set P0 (plus P0 A0)) (set A1 SP) (set P1 IMM) (set P1 (plus P1 A1)) The regcprop chain created in this context will always begin with SP, which is not a member of GENERAL_REGS, which would immediately exit the function rather than discovering that A0 is the second oldest copy and is of the proper class. After this substitution, we can find that the A1=SP copy is dead. I've bootstrapped this patch on x86_64-linux for sanity and committed it, though of course no effect was expected there. r~
Attachment:
z
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |