LLVM  10.0.0svn
Macros | Functions
WebAssemblyLateEHPrepare.cpp File Reference

Does various transformations for exception handling. More...

#include "MCTargetDesc/WebAssemblyMCTargetDesc.h"
#include "WebAssembly.h"
#include "WebAssemblySubtarget.h"
#include "WebAssemblyUtilities.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/WasmEHFuncInfo.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/Support/Debug.h"
Include dependency graph for WebAssemblyLateEHPrepare.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "wasm-late-eh-prepare"
 

Functions

 INITIALIZE_PASS (WebAssemblyLateEHPrepare, DEBUG_TYPE, "WebAssembly Late Exception Preparation", false, false) FunctionPass *llvm
 
static MachineBasicBlockgetMatchingEHPad (MachineInstr *MI)
 
template<typename Container >
static void eraseDeadBBsAndChildren (const Container &MBBs)
 

Detailed Description

Does various transformations for exception handling.

Definition in file WebAssemblyLateEHPrepare.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "wasm-late-eh-prepare"

Definition at line 25 of file WebAssemblyLateEHPrepare.cpp.

Function Documentation

◆ eraseDeadBBsAndChildren()

template<typename Container >
static void eraseDeadBBsAndChildren ( const Container &  MBBs)
static

Definition at line 87 of file WebAssemblyLateEHPrepare.cpp.

References llvm::MachineInstrBuilder::addExternalSymbol(), llvm::MachineInstrBuilder::addReg(), llvm::MachineBasicBlock::addSuccessor(), llvm::SmallVectorImpl< T >::append(), assert(), llvm::MachineBasicBlock::begin(), llvm::ISD::BR, llvm::BuildMI(), llvm::Catch, llvm::ISD::CATCHRET, llvm::WebAssembly::ClangCallTerminateFn, llvm::ISD::CLEANUPRET, llvm::SmallSet< T, N, C >::count(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::dbgs(), llvm::SmallVectorBase::empty(), llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::eraseFromParent(), llvm::MachineInstr::eraseFromParent(), llvm::MachineInstr::getDebugLoc(), llvm::MCAsmInfo::getExceptionHandlingType(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::MachineFunction::getFunction(), llvm::MachineOperand::getGlobal(), getMatchingEHPad(), llvm::MachineOperand::getMBB(), llvm::TargetMachine::getMCAsmInfo(), llvm::Value::getName(), llvm::MachineFunction::getName(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::getTarget(), llvm::MachineFunction::getWasmEHFuncInfo(), llvm::Function::hasPersonalityFn(), llvm::SmallSet< T, N, C >::insert(), llvm::MachineBasicBlock::insert(), llvm::MachineOperand::isGlobal(), LLVM_DEBUG, MI, MRI, llvm::MachineBasicBlock::pred_empty(), llvm::SmallVectorTemplateBase< T >::push_back(), Reg, llvm::MachineInstr::removeFromParent(), llvm::MachineBasicBlock::removeSuccessor(), llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_end(), TII, and llvm::Wasm.

◆ getMatchingEHPad()

static MachineBasicBlock* getMatchingEHPad ( MachineInstr MI)
static

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( WebAssemblyLateEHPrepare  ,
DEBUG_TYPE  ,
"WebAssembly Late Exception Preparation"  ,
false  ,
false   
)

Definition at line 47 of file WebAssemblyLateEHPrepare.cpp.