LLVM 20.0.0git
Namespaces | Typedefs | Enumerations | Functions
EHPersonalities.h File Reference
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/TinyPtrVector.h"

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Typedefs

typedef TinyPtrVector< BasicBlock * > llvm::ColorVector
 

Enumerations

enum class  llvm::EHPersonality {
  llvm::Unknown , llvm::GNU_Ada , llvm::GNU_C , llvm::GNU_C_SjLj ,
  llvm::GNU_CXX , llvm::GNU_CXX_SjLj , llvm::GNU_ObjC , llvm::MSVC_X86SEH ,
  llvm::MSVC_TableSEH , llvm::MSVC_CXX , llvm::CoreCLR , llvm::Rust ,
  llvm::Wasm_CXX , llvm::XL_CXX , llvm::ZOS_CXX
}
 

Functions

EHPersonality llvm::classifyEHPersonality (const Value *Pers)
 See if the given exception handling personality function is one that we understand.
 
StringRef llvm::getEHPersonalityName (EHPersonality Pers)
 
EHPersonality llvm::getDefaultEHPersonality (const Triple &T)
 
bool llvm::isAsynchronousEHPersonality (EHPersonality Pers)
 Returns true if this personality function catches asynchronous exceptions.
 
bool llvm::isFuncletEHPersonality (EHPersonality Pers)
 Returns true if this is a personality function that invokes handler funclets (which must return to it).
 
bool llvm::isScopedEHPersonality (EHPersonality Pers)
 Returns true if this personality uses scope-style EH IR instructions: catchswitch, catchpad/ret, and cleanuppad/ret.
 
bool llvm::isNoOpWithoutInvoke (EHPersonality Pers)
 Return true if this personality may be safely removed if there are no invoke instructions remaining in the current function.
 
bool llvm::canSimplifyInvokeNoUnwind (const Function *F)
 
DenseMap< BasicBlock *, ColorVectorllvm::colorEHFunclets (Function &F)
 If an EH funclet personality is in use (see isFuncletEHPersonality), this will recompute which blocks are in which funclet.