forked from OSchip/llvm-project
45e59f7198
unwind_phase1 and unwind_phase2 allocate their own copies of unw_cursor_t buffers on the stack. This can blow-up stack usage of the unwinder depending on how these two functions get inlined into _Unwind_RaiseException. Clang seems to inline unwind_phase1 into _Unwind_RaiseException but not unwind_phase2, thus creating two unw_cursor_t buffers on the stack. One way to work-around this problem is to mark both unwind_phase1 and unwind_phase2 as noinline. This patch takes the less compiler-dependent approach and explicitly allocate a unw_cursor_t buffer and pass that into unwind_phase1 and unwind_phase2 functions. A follow-up patch will replicate this behavior for the non-EHABI and non-SJLJ implementations. Reviewers: jroelofs, bcraig. Differential revision: http://reviews.llvm.org/D20320 llvm-svn: 271004 |
||
---|---|---|
.. | ||
cmake | ||
include | ||
src | ||
test | ||
.arcconfig | ||
.clang-format | ||
CMakeLists.txt |