diff options
author | Xing Xue <xingxue@outlook.com> | 2022-05-31 09:21:34 -0400 |
---|---|---|
committer | Xing Xue <xingxue@outlook.com> | 2022-05-31 09:21:34 -0400 |
commit | b8f5732634feaf7a9ce37d33f97f1fb490efeddd (patch) | |
tree | 7da9c2cc98e63374772d04421be008ecada5b6a0 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | |
parent | b0fc765350fe8f7f857985718a50463d22758ef1 (diff) | |
download | llvm-b8f5732634feaf7a9ce37d33f97f1fb490efeddd.zip llvm-b8f5732634feaf7a9ce37d33f97f1fb490efeddd.tar.gz llvm-b8f5732634feaf7a9ce37d33f97f1fb490efeddd.tar.bz2 |
[libc++abi][AIX] add personality and helper functions for the state table EH
Summary:
This patch adds the personality and helper functions for the state table based EH used by IBM legacy compilers xlC and xlclang++ on AIX.
* A high level description of the state table based EH is provided in the code comments.
* Function scan_state_tab() is added to scan the state table. It is invoked by the state table personality routine __xlcxx_personality_v0() and returns scan_results like scan_eh_tab() does.
* A couple of EH helper functions used by xlC and xlclang++ generated code are also added, e.g., __xlc_catch_matchv2() which checks whether the thrown object matches the catch handler's exception type.
* Debugging macros _LIBCXXABI_TRACE_STATETAB, _LIBCXXABI_TRACE_STATETAB0, and _LIBCXXABI_TRACING_STATETAB are added to dump state table scanning traces if environment variable LIBCXXABI_PRINT_STATTAB is set.
* The state variable and state table data is the LSDA found from the traceback table of the function during unwinding.
Reviewed by: MaskRay, cebowleratibm, libc++abi
Differential Revision: https://reviews.llvm.org/D100504
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions