diff options
author | jasonliu <jasonliu.development@gmail.com> | 2020-12-02 14:48:52 +0000 |
---|---|---|
committer | jasonliu <jasonliu.development@gmail.com> | 2020-12-02 18:42:44 +0000 |
commit | a65d8c5d720db8c646adb0ad9dac54da5d5fa230 (patch) | |
tree | f56efc405cd907274a7c263ce7256414f8a6a217 /llvm/lib/CodeGen/TargetPassConfig.cpp | |
parent | 9d6d24c25056c17db56cf1ef5124f82eb18afc2c (diff) | |
download | llvm-a65d8c5d720db8c646adb0ad9dac54da5d5fa230.zip llvm-a65d8c5d720db8c646adb0ad9dac54da5d5fa230.tar.gz llvm-a65d8c5d720db8c646adb0ad9dac54da5d5fa230.tar.bz2 |
[XCOFF][AIX] Generate LSDA data and compact unwind section on AIX
Summary:
AIX uses the existing EH infrastructure in clang and llvm.
The major differences would be
1. AIX do not have CFI instructions.
2. AIX uses a new personality routine, named __xlcxx_personality_v1.
It doesn't use the GCC personality rountine, because the
interoperability is not there yet on AIX.
3. AIX do not use eh_frame sections. Instead, it would use a eh_info
section (compat unwind section) to store the information about
personality routine and LSDA data address.
Reviewed By: daltenty, hubert.reinterpretcast
Differential Revision: https://reviews.llvm.org/D91455
Diffstat (limited to 'llvm/lib/CodeGen/TargetPassConfig.cpp')
-rw-r--r-- | llvm/lib/CodeGen/TargetPassConfig.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp index 3a1a82f..b877954 100644 --- a/llvm/lib/CodeGen/TargetPassConfig.cpp +++ b/llvm/lib/CodeGen/TargetPassConfig.cpp @@ -735,6 +735,7 @@ void TargetPassConfig::addPassesToHandleExceptions() { LLVM_FALLTHROUGH; case ExceptionHandling::DwarfCFI: case ExceptionHandling::ARM: + case ExceptionHandling::AIX: addPass(createDwarfEHPass(getOptLevel())); break; case ExceptionHandling::WinEH: |