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]

Re: [RFA patch] PR18749: epilogue not tracked in dwarf2 unwind-info


Hi,

On Mon, 12 Jun 2006, Daniel Jacobowitz wrote:

> > I'm trying to fix PR18749, which is about the fact that dwarf2out.c 
> > doesn't look at epilogues at all, which makes the CFA be wrong during the 
> > epilogue, as no adjustments there (like pops, or additions to the stack 
> > pointer) are tracked.
> 
> Just FYI, there's also:
>   http://gcc.gnu.org/ml/gcc-patches/2006-02/msg01091.html

Whoops.  Thanks for the pointer.

> > For 1) I chose to only support jump-less epilogues.  That means I can 
> > simply save the whole state before the epilogue, and restore it completely 
> > afterwards.  (I did not look into using 
> > DW_CFA_remember_state/restore_state)
> 
> From reading your patch, I'd be worried about scheduling; you don't
> know if something affecting unwind data has been scheduled into the
> epilogue you're restoring after.

But as I make sure, that you can't leave the epilogue, other than 
returning from the function, this changed state (which is unequal to the 
state right before the epilogue) can't be relied upon anywhere after the 
epilogue.  Program flow simply couldn't go over this intermediate 
non-epilogue insn without leaving the function.

(Note that I restore the state only at the next barrier after the 
epilogue)


Ciao,
Michael.


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