On 08/25/2015 03:54 PM, Steve Ellcey wrote:
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).
Strange. I'm not sure why peep2 would be deleting those instructions,
except perhaps as a side effect of a cfgcleanup or somesuch.
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.
Yea, unfortunately I can't help much there. I see dwarf-anything and my
eyes just glaze over and I thank the powers that be that Jakub, Jason
and others are around to handle that stuff.
jeff