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]

fix pr48459


In this pr, during the initialization of the dwarf2 backend, we attempt
to cache a translation from a local stack frame address to the CFA.  We
do this optimistically, hoping to cut down the work later for every
local stack frame address that we find in the actual variables dumped.

Unfortunately, AVR has problems with the edge condition of no local
stack frame allocated.  In this case, the results of its register
elimination are different from what dwarf2out expects.  IMO, AVR is
justified in this, because the combination that dwarf2out wants is
invalid according to TARGET_CAN_ELIMINATE.

That said, this really shouldn't matter since, for the edge condition
in question, we won't actually use the translation to the CFA.  The 
moment that we generate an actual reference to the stack frame, we'll
actually generate a frame pointer, and everything else will DTRT.

Thus we can avoid the explosion by deferring the sanity check until
the translation is actually used.

Committed to HEAD; testing for 4.6 is still going.


r~

Attachment: d-48459
Description: Text document


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