HomePhabricator

[WebAssembly] Add functions for EHScopes

Description

[WebAssembly] Add functions for EHScopes

Summary:
There are functions using the term 'funclet' to refer to both

  1. an EH scopes, the structure of BBs that starts with

catchpad/cleanuppad and ends with catchret/cleanupret, and

  1. a small function that gets outlined in AsmPrinter, which is the

original meaning of 'funclet'.

So far the two have been the same thing; EH scopes are always outlined
in AsmPrinter as funclets at the end of the compilation pipeline. But
now wasm also uses scope-based EH but does not outline those, so we now
need to correctly distinguish those two use cases in functions.

This patch splits MachineBasicBlock::isFuncletEntry into
isFuncletEntry and isEHScopeEntry, and
MachineFunction::hasFunclets into hasFunclets and hasEHScopes, in
order to distinguish the two different use cases. And this also changes
some uses of the term 'funclet' to 'scope' in getFuncletMembership and
change the function name to getEHScopeMembership because this function
is not about outlined funclets but about EH scope memberships.

This change is in the same vein as D45559.

Reviewers: majnemer, dschuff

Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits

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

Details