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] |
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] |