There are functions using the term 'funclet' to refer to both
- an EH scopes, the structure of BBs that starts with catchpad/cleanuppad and ends with catchret/cleanupret, and
- 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.
Is this comment the right place to note the difference between and EH scope and EH funclet in the IR? Is an EH funclet just a scope that will become outlined?