This is the mail archive of the gcc-bugs@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]

Re: inherited reloads bug


Michael Hayes writes:
 > 
 > I've been having some reload problems with the C4x target that have
 > appeared with egcs in the last month or so.  The symptom is that
 > invalid insns are being output with address displacements too
 > large.

After a torturous tour through inherited and optional reloads I can
avoid this problem by redefining PREFERRED_RELOAD_CLASS for the C4x.
(This had a bit of hackery to avoid an old bug in reload that was
properly fixed late last year.  With a slash of a keystroke I removed
the hackery and fixed the problem...)

Anyway, I believe it is still possible in some rare cases for the
problem I noticed to rear its head again (although the reload
contortions may somehow avoid this condition through a mechanism I
have yet to discover).  This would occur when:

1. an optional reload for a pseudo is assigned a frame slot
2. the address of the frame slot has a displacement that is too large
3. inheritance is enabled but the optional reload is not inherited

In this case, no reload reg will be assigned, yet the second pass of
find_reloads will have replaced the pseudo with the invalid frame slot
address.  Thus subst_reloads will not fix the faulty insn up.

Michael.







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