efriedma-quic wrote:

So if an unwind table has an epilog opcode, and you chain another unwind table 
to it, the chained unwind table inherits the epilog opcode?  You could use that.

The primary unwind table ends at the first epilog, you mark it with an "atend" 
epilog opcode. The next region starts immediately after that, and continues 
until the next epilog.  The subsequent region uses a chained unwind table.  The 
chained unwind table inherits the atend marking, so it has a correct epilog 
marking.  Repeat for each epilog, and you can cover a function with an 
arbitrary number of epilogs without repeating the opcodes.

That's not great for codesize, and it excludes any other use of chaining... but 
it's better than just giving up.  Bailing out is a hazard: minor code changes 
can trigger the error, and the connection between the user's code and the error 
is hard to understand.

https://github.com/llvm/llvm-project/pull/129142
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to