LLVM
8.0.1
|
Does various transformations for exception handling. More...
#include "MCTargetDesc/WebAssemblyMCTargetDesc.h"
#include "WebAssembly.h"
#include "WebAssemblySubtarget.h"
#include "WebAssemblyUtilities.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/WasmEHFuncInfo.h"
#include "llvm/MC/MCAsmInfo.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "wasm-exception-prepare" |
Functions | |
INITIALIZE_PASS (WebAssemblyLateEHPrepare, DEBUG_TYPE, "WebAssembly Late Exception Preparation", false, false) FunctionPass *llvm | |
static MachineBasicBlock * | getMatchingEHPad (MachineInstr *MI) |
template<typename Container > | |
static void | eraseDeadBBsAndChildren (const Container &MBBs) |
Does various transformations for exception handling.
Definition in file WebAssemblyLateEHPrepare.cpp.
#define DEBUG_TYPE "wasm-exception-prepare" |
Definition at line 24 of file WebAssemblyLateEHPrepare.cpp.
|
static |
Definition at line 90 of file WebAssemblyLateEHPrepare.cpp.
References llvm::SmallVectorImpl< T >::append(), assert(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::MachineBasicBlock::begin(), llvm::ISD::BR, llvm::BuildMI(), llvm::Catch, llvm::ISD::CATCHRET, llvm::WebAssembly::ClangCallTerminateFn, llvm::ISD::CLEANUPRET, llvm::WebAssembly::CxaRethrowFn, llvm::dbgs(), llvm::SmallVectorBase::empty(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::erase(), llvm::MachineBasicBlock::eraseFromParent(), llvm::MachineInstr::eraseFromParent(), llvm::SmallVectorTemplateCommon< T >::front(), llvm::MachineInstr::getDebugLoc(), llvm::MCAsmInfo::getExceptionHandlingType(), llvm::MachineFunction::getFunction(), llvm::MachineOperand::getGlobal(), getMatchingEHPad(), llvm::MachineOperand::getMBB(), llvm::TargetMachine::getMCAsmInfo(), llvm::Value::getName(), llvm::MachineFunction::getName(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::getTarget(), llvm::MachineFunction::getWasmEHFuncInfo(), llvm::Function::hasPersonalityFn(), llvm::MachineBasicBlock::insert(), llvm::WebAssembly::isCatch(), llvm::WebAssembly::isCatchTerminatePad(), llvm::MachineOperand::isGlobal(), llvm::WebAssembly::isThrow(), LLVM_DEBUG, llvm::make_range(), MI, llvm::MachineBasicBlock::pred_empty(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::MachineBasicBlock::removeSuccessor(), llvm::WebAssembly::StdTerminateFn, llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_end(), TII, and llvm::Wasm.
|
static |
Definition at line 63 of file WebAssemblyLateEHPrepare.cpp.
References llvm::SmallVectorImpl< T >::append(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorBase::empty(), llvm::MachineFunction::front(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::MachineBasicBlock::isEHPad(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::MachineBasicBlock::pred_begin(), llvm::MachineBasicBlock::pred_end(), and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by eraseDeadBBsAndChildren().
INITIALIZE_PASS | ( | WebAssemblyLateEHPrepare | , |
DEBUG_TYPE | , | ||
"WebAssembly Late Exception Preparation" | , | ||
false | , | ||
false | |||
) |
Definition at line 50 of file WebAssemblyLateEHPrepare.cpp.