[all-commits] [llvm/llvm-project] 6f2999: [WebAssembly] Handle multiple EH_LABELs in EH pad
Heejin Ahn via All-commits
all-commits at lists.llvm.org
Thu Feb 18 10:18:53 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 6f2999b36a6e4834966fd5cde3aba4d296a2de97
https://github.com/llvm/llvm-project/commit/6f2999b36a6e4834966fd5cde3aba4d296a2de97
Author: Heejin Ahn <aheejin at gmail.com>
Date: 2021-02-18 (Thu, 18 Feb 2021)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
M llvm/test/CodeGen/WebAssembly/exception.mir
Log Message:
-----------
[WebAssembly] Handle multiple EH_LABELs in EH pad
Usually `EH_LABEL`s are placed in
- Before an `invoke` (which becomes calls in the backend)
- After an `invoke`
- At the start of an EH pad
I don't know exactly why, but I noticed there are cases of multiple, not
a single, `EH_LABEL` instructions in the beginning of an EH pad. In that
case `global.set` instruction placed to restore `__stack_pointer` ended
up between two `EH_LABEL` instructions before `CATCH`. It should follow
after the `EH_LABEL`s and `CATCH`. This CL fixes that case.
Reviewed By: dschuff
Differential Revision: https://reviews.llvm.org/D96970
More information about the All-commits
mailing list