This is the mail archive of the gcc@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: fake/abnormal/eh edge question


On 08/25/2015 02:54 PM, Steve Ellcey wrote:
> Actually, it looks like is peephole2 that is eliminating the
> instructions (and .cfi psuedo-ops).
> 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.

Don't create any new edges.  That doesn't make sense for unwind info.

You don't need unwind info for unreachable code.

You do need enough info to be able to unwind from any instruction in
general, or just from call sites for C++ EH.  This means you need to be
able to calculate the value of sp from the caller, which you can only
get from the r12/drap value.  So you need to keep the instructions and
the cfi directives generated from them.

Looking at the i386 port, in the i386.md file, I see a few peepholes
check the value of RTX_FRAME_RELATED_P and fail if it is set.  It
appears that you need to do something similar in the mips.md file to
prevent these instructions from being deleted by the peephole2 pass.

Jim


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