Alexander Mitin via llvm-dev
2020-May-08 21:34 UTC
[llvm-dev] [LLVM 10][Windows/MSVC] llvm.eh.sjlj.setjmp does not lower to _setjmp() call any more
Hello, In our project we use llvm.eh.sjlj.setjmp intrinsic to establish a recovering chain which implies that it's 'longjmp' counterpart would be called from a C code, so it uses a runtime implementation of longjmp(). For LLVM 7 llvm.eh.sjlj.setjmp lowers to a call to Windows CRT function _setjmp(). After migrating to LLVM 10 we've found that it's no longer true. Is it done intentionally? If yes, why? The doc for llvm.eh.sjlj.setjmp says that this intrinsic is compatible with the GCC __builtin_setjmp implementation, so why isn't it compatible with MSVC CRT (in case of using MSVC CRT)? -- Alexander Mitin, Instantiations, Inc.
Reid Kleckner via llvm-dev
2020-May-11 15:28 UTC
[llvm-dev] [LLVM 10][Windows/MSVC] llvm.eh.sjlj.setjmp does not lower to _setjmp() call any more
The timeline appears to coincide with Windows EH support for ARM64: https://releases.llvm.org/8.0.0/tools/clang/docs/ReleaseNotes.html#windows-support I looked at the logs, but it's not immediately obvious when the behavior changed. If you want to dig deeper, it would be straightforward to bisect this behavior change to a specific revision, and the commit message should be explanatory. On Fri, May 8, 2020 at 2:35 PM Alexander Mitin via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hello, > > In our project we use llvm.eh.sjlj.setjmp intrinsic to establish a > recovering chain which implies that it's 'longjmp' counterpart would > be called from a C code, so it uses a runtime implementation of > longjmp(). > For LLVM 7 llvm.eh.sjlj.setjmp lowers to a call to Windows CRT > function _setjmp(). After migrating to LLVM 10 we've found that it's > no longer true. > Is it done intentionally? If yes, why? The doc for llvm.eh.sjlj.setjmp > says that this intrinsic is compatible with the GCC __builtin_setjmp > implementation, so why isn't it compatible with MSVC CRT (in case of > using MSVC CRT)? > > -- > Alexander Mitin, > Instantiations, Inc. > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200511/03f1decc/attachment.html>