[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