This is the mail archive of the
mailing list for the GCC project.
Re: fake/abnormal/eh edge question
- From: Steve Ellcey <sellcey at imgtec dot com>
- To: Jeff Law <law at redhat dot com>
- Cc: <gcc at gcc dot gnu dot org>
- Date: Tue, 25 Aug 2015 14:54:33 -0700
- Subject: Re: fake/abnormal/eh edge question
- Authentication-results: sourceware.org; auth=none
- References: <6ed5618c-3d13-42f6-8842-5a8a0a1e0937 at BAMAIL02 dot ba dot imgtec dot org> <55DCD3C4 dot 6060506 at redhat dot com>
- Reply-to: <sellcey at imgtec dot com>
On Tue, 2015-08-25 at 14:44 -0600, Jeff Law wrote:
> > I want to preserve the copy of $sp to $12 and I also want to preserve the
> > .cfi psuedo-ops (and code) in the exit block and epilogue in order for
> > exception handling to work correctly. One way I thought of doing this
> > is to create an edge from the entry block to the exit block but I am
> > unsure of all the implications of creating a fake/eh/abnormal edge to
> > do this and which I would want to use.
> Presumably it's the RTL DCE pass that's eliminating this stuff?
Actually, it looks like is peephole2 that is eliminating the
instructions (and .cfi psuedo-ops).
> Do you have the FRAME_RELATED bit set of those insns?
> But what I don't understand is why preserving the code is useful if it
> can't be reached. Maybe there's something about the dwarf2 unwinding
> that I simply don't understand -- I've managed to avoid learning about
> it for years.
I am not entirely sure I need the code or if I just need the .cfi
psuedo-ops and that I need the code to generate the .cfi stuff.
I wish I could avoid the dwarf unwinder but that seems to be the main
problem I am having with stack realignment. Getting the cfi stuff right
so that the unwinder works properly is proving very hard.