[all-commits] [llvm/llvm-project] 4e4df1: [WebAssembly] Remove unreachable EH pads

Heejin Ahn via All-commits all-commits at lists.llvm.org
Sat Jan 9 03:43:17 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4e4df1e38d6b66083b3badb78e56b8b0f6045fd1
      https://github.com/llvm/llvm-project/commit/4e4df1e38d6b66083b3badb78e56b8b0f6045fd1
  Author: Heejin Ahn <aheejin at gmail.com>
  Date:   2021-01-09 (Sat, 09 Jan 2021)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
    R llvm/test/CodeGen/WebAssembly/eh-labels.mir
    A llvm/test/CodeGen/WebAssembly/exception.mir

  Log Message:
  -----------
  [WebAssembly] Remove unreachable EH pads

This removes unreachable EH pads in LateEHPrepare. This is not for
optimization but for preparation for CFGStackify. In CFGStackify, we
determine where to place `try` marker by computing the nearest common
dominator of all predecessors of an EH pad, but when an EH pad does not
have a predecessor, it becomes tricky. We can insert an empty dummy BB
before the EH pad and place the `try` there, but removing unreachable EH
pads is simpler.

This moves an existing exception label test from eh-label.mir to
exception.mir and adds a new test there.

This also adds some comments to existing methods.

Reviewed By: dschuff, tlively

Differential Revision: https://reviews.llvm.org/D94044




More information about the All-commits mailing list