Go to the documentation of this file.
15 #ifndef LLVM_LIB_TARGET_WEBASSEMBLY_UTILS_WEBASSEMBLYUTILITIES_H
16 #define LLVM_LIB_TARGET_WEBASSEMBLY_UTILS_WEBASSEMBLYUTILITIES_H
22 class MachineBasicBlock;
27 class TargetRegisterClass;
28 class WebAssemblyFunctionInfo;
29 class WebAssemblySubtarget;
31 namespace WebAssembly {
33 bool isChild(
const MachineInstr &
MI,
const WebAssemblyFunctionInfo &MFI);
57 const WebAssemblySubtarget *Subtarget);
63 const WebAssemblySubtarget *Subtarget);
67 MachineInstr *
findCatch(MachineBasicBlock *EHPad);
bool isChild(const MachineInstr &MI, const WebAssemblyFunctionInfo &MFI)
Test whether MI is a child of some other node in an expression tree.
const MachineOperand & getCalleeOp(const MachineInstr &MI)
Returns the operand number of a callee, assuming the argument is a call instruction.
This is an optimization pass for GlobalISel generic memory operations.
MachineInstr * findCatch(MachineBasicBlock *EHPad)
Find a catch instruction from an EH pad.
MCSymbolWasm * getOrCreateFunctionTableSymbol(MCContext &Ctx, const WebAssemblySubtarget *Subtarget)
Returns the __indirect_function_table, for use in call_indirect and in function bitcasts.
bool mayThrow(const MachineInstr &MI)
cl::opt< bool > WasmEnableEmSjLj
unsigned getCopyOpcodeForRegClass(const TargetRegisterClass *RC)
Returns the appropriate copy opcode for the given register class.
const char *const StdTerminateFn
const char *const CxaBeginCatchFn
const char *const CxaRethrowFn
cl::opt< bool > WasmEnableSjLj
const char *const ClangCallTerminateFn
const char *const PersonalityWrapperFn
cl::opt< bool > WasmEnableEH
MCSymbolWasm * getOrCreateFuncrefCallTableSymbol(MCContext &Ctx, const WebAssemblySubtarget *Subtarget)
Returns the __funcref_call_table, for use in funcref calls when lowered to table.set + call_indirect.
cl::opt< bool > WasmEnableEmEH