[PATCH] D43746: [WebAssembly] Add Wasm exception handling prepare pass

Heejin Ahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 11 05:47:47 PDT 2018


aheejin updated this revision to Diff 141985.
aheejin added a comment.
Herald added subscribers: gbedwell, javed.absar.

- Now Wasm EH uses WinEH instructions (catchswitch, catchpad/ret and cleanupad/ret) - Wasm EH runs WinEHPrepare before WasmEHPrepare, with a flag that it only demotes PHIs in  catchswitch blocks.
- Go back to the previous https://github.com/WebAssembly/exception-handling/blob/master/proposals/Exceptions.md | Wasm EH proposal ]]
- Moved a call to wasm.landingpad.index() intrinsic from invoke blocks to EH pad blocks, which will be more intuitive
- Add DemoteCatchSwitchOnly option to WinEHPrepare for Wasm EH
- Some cosmetic changes
- Rebase


Repository:
  rL LLVM

https://reviews.llvm.org/D43746

Files:
  CMakeLists.txt
  cmake/config-ix.cmake
  cmake/modules/FindLibpfm.cmake
  docs/CMake.rst
  docs/CommandGuide/llvm-mca.rst
  include/llvm/Analysis/EHPersonalities.h
  include/llvm/CodeGen/Passes.h
  include/llvm/IR/IntrinsicsWebAssembly.td
  include/llvm/IR/IntrinsicsX86.td
  include/llvm/InitializePasses.h
  lib/Analysis/EHPersonalities.cpp
  lib/CodeGen/CMakeLists.txt
  lib/CodeGen/CodeGen.cpp
  lib/CodeGen/TargetPassConfig.cpp
  lib/CodeGen/WasmEHPrepare.cpp
  lib/CodeGen/WinEHPrepare.cpp
  lib/IR/AutoUpgrade.cpp
  lib/Target/AArch64/AArch64RegisterInfo.td
  lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
  lib/Target/ARM/ARMISelLowering.cpp
  lib/Target/X86/X86IntrinsicsInfo.h
  lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
  lib/Transforms/InstCombine/InstructionCombining.cpp
  runtimes/CMakeLists.txt
  test/CodeGen/ARM/fp16-instructions.ll
  test/CodeGen/WebAssembly/wasmehprepare.ll
  test/CodeGen/X86/avx512bw-intrinsics-upgrade.ll
  test/CodeGen/X86/avx512bw-intrinsics.ll
  test/CodeGen/X86/avx512bwvl-intrinsics-upgrade.ll
  test/CodeGen/X86/avx512bwvl-intrinsics.ll
  test/MC/AArch64/SVE/add-diagnostics.s
  test/MC/AArch64/SVE/sub-diagnostics.s
  test/MC/AArch64/SVE/zip1-diagnostics.s
  test/MC/AArch64/SVE/zip2-diagnostics.s
  test/Transforms/InstCombine/max-of-nots.ll
  test/Transforms/InstCombine/xor.ll
  test/tools/llvm-mca/AArch64/Exynos/scheduler-queue-usage.s
  test/tools/llvm-mca/X86/BtVer2/rcu-statistics.s
  test/tools/llvm-mca/X86/BtVer2/scheduler-queue-usage.s
  tools/llvm-exegesis/CMakeLists.txt
  tools/llvm-mca/BackendStatistics.cpp
  tools/llvm-mca/BackendStatistics.h
  tools/llvm-mca/CMakeLists.txt
  tools/llvm-mca/DispatchStatistics.cpp
  tools/llvm-mca/DispatchStatistics.h
  tools/llvm-mca/RetireControlUnitStatistics.cpp
  tools/llvm-mca/RetireControlUnitStatistics.h
  tools/llvm-mca/SchedulerStatistics.cpp
  tools/llvm-mca/SchedulerStatistics.h
  tools/llvm-mca/llvm-mca.cpp
  tools/opt/opt.cpp
  unittests/tools/llvm-exegesis/CMakeLists.txt

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43746.141985.patch
Type: text/x-patch
Size: 127601 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180411/d5df51a6/attachment.bin>


More information about the llvm-commits mailing list