DescriptionAdd PNaClSjLjEH pass to implement C++ exception handling using setjmp()+longjmp()
There are two parts to this:
* PNaClSjLjEH.cpp expands out the "invoke", "landingpad" and "resume"
instructions, modifying the control flow to use setjmp().
* ExceptionInfoWriter.cpp lowers landingpads' clause lists to data
that PNaCl's C++ runtime library will interpret. This part will be
reused when we drop the SjLj part and create a stable ABI for
zero-cost EH.
This pass isn't enabled in PNaClABISimplify yet: I'll do that in a
separate change.
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3696
TEST=*.ll tests (also tested end-to-end: plumbing for this will follow later)
Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-llvm.git;a=commit;h=f058041
Patch Set 1 #Patch Set 2 : Retry upload #Patch Set 3 : Hacky version to test enabling by default #Patch Set 4 : Revert to proper version #Patch Set 5 : Cleanup #Patch Set 6 : Cleanup #Patch Set 7 : Cleanup #Patch Set 8 : Retry upload #Patch Set 9 : Rename UnwindFrame -> ExceptionFrame for consistency #
Total comments: 18
Patch Set 10 : Review #Patch Set 11 : Review 2 #Patch Set 12 : Retry upload #Patch Set 13 : Add second filter to example #Patch Set 14 : Fix type of __pnacl_eh_filter_table in comment #Patch Set 15 : Retry upload #
Messages
Total messages: 11 (0 generated)
|