|
LLVM
4.0.0
|
EscapeEnumerator - This is a little algorithm to find all escape points from a function so that "finally"-style code can be inserted. More...
#include <EscapeEnumerator.h>
Public Member Functions | |
| EscapeEnumerator (Function &F, const char *N="cleanup", bool HandleExceptions=true) | |
| IRBuilder * | Next () |
EscapeEnumerator - This is a little algorithm to find all escape points from a function so that "finally"-style code can be inserted.
In addition to finding the existing return and unwind instructions, it also (if necessary) transforms any call instructions into invokes and sends them to a landing pad.
Definition at line 28 of file EscapeEnumerator.h.
|
inline |
Definition at line 38 of file EscapeEnumerator.h.
| IRBuilder * EscapeEnumerator::Next | ( | ) |
Definition at line 30 of file EscapeEnumerator.cpp.
References AMDGPU::RuntimeMD::KeyName::Args, C, llvm::changeToInvokeAndSplitBasicBlock(), llvm::classifyEHPersonality(), llvm::BasicBlock::Create(), llvm::LandingPadInst::Create(), llvm::ResumeInst::Create(), llvm::Function::doesNotThrow(), llvm::SmallVectorBase::empty(), llvm::StructType::get(), getDefaultPersonalityFn(), llvm::Type::getInt32Ty(), llvm::Type::getInt8PtrTy(), llvm::BasicBlock::getTerminator(), I, llvm::isFuncletEHPersonality(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::report_fatal_error(), llvm::LandingPadInst::setCleanup(), llvm::IRBuilderBase::SetInsertPoint(), and llvm::SmallVectorTemplateCommon< T >::size().
1.8.6