clang  3.9.0
Classes | Namespaces | Functions | Variables
CGCleanup.h File Reference
#include "EHScopeStack.h"
#include "Address.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
Include dependency graph for CGCleanup.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  clang::CodeGen::CatchTypeInfo
 The MS C++ ABI needs a pointer to RTTI data plus some flags to describe the type of a catch handler, so we use this wrapper. More...
 
class  clang::CodeGen::EHScope
 A protected scope for zero-cost EH handling. More...
 
class  clang::CodeGen::EHScope::CatchBitFields
 
class  clang::CodeGen::EHScope::CleanupBitFields
 
class  clang::CodeGen::EHScope::FilterBitFields
 
class  clang::CodeGen::EHCatchScope
 A scope which attempts to handle some, possibly all, types of exceptions. More...
 
struct  clang::CodeGen::EHCatchScope::Handler
 
struct  clang::CodeGen::ExtInfo
 Extra information required for cleanups that have resolved branches through them. More...
 
class  clang::CodeGen::EHFilterScope
 An exceptions scope which filters exceptions thrown through it. More...
 
class  clang::CodeGen::EHTerminateScope
 An exceptions scope which calls std::terminate if any exception reaches it. More...
 
class  clang::CodeGen::EHPadEndScope
 
class  clang::CodeGen::EHScopeStack::iterator
 A non-stable pointer into the scope stack. More...
 
struct  clang::CodeGen::EHPersonality
 The exceptions personality for a function. More...
 

Namespaces

 llvm
 DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterators.
 
 clang
 Dataflow Directional Tag Classes.
 
 clang::CodeGen
 

Functions

struct ExtInfo & clang::CodeGen::getExtInfo ()
 
static size_t clang::CodeGen::getSizeForCleanupSize (size_t Size)
 Gets the size required for a lazy cleanup scope with the given cleanup-data requirements. More...
 
size_t clang::CodeGen::getAllocatedSize () const
 
 clang::CodeGen::EHCleanupScope (bool isNormal, bool isEH, bool isActive, unsigned cleanupSize, unsigned fixupDepth, EHScopeStack::stable_iterator enclosingNormal, EHScopeStack::stable_iterator enclosingEH)
 
void clang::CodeGen::Destroy ()
 
 clang::CodeGen::~EHCleanupScope ()=delete
 
bool clang::CodeGen::isNormalCleanup () const
 
llvm::BasicBlock * clang::CodeGen::getNormalBlock () const
 
void clang::CodeGen::setNormalBlock (llvm::BasicBlock *BB)
 
bool clang::CodeGen::isEHCleanup () const
 
bool clang::CodeGen::isActive () const
 
void clang::CodeGen::setActive (bool A)
 
bool clang::CodeGen::isLifetimeMarker () const
 
void clang::CodeGen::setLifetimeMarker ()
 
bool clang::CodeGen::hasActiveFlag () const
 
Address clang::CodeGen::getActiveFlag () const
 
void clang::CodeGen::setActiveFlag (Address Var)
 
void clang::CodeGen::setTestFlagInNormalCleanup ()
 
bool clang::CodeGen::shouldTestFlagInNormalCleanup () const
 
void clang::CodeGen::setTestFlagInEHCleanup ()
 
bool clang::CodeGen::shouldTestFlagInEHCleanup () const
 
unsigned clang::CodeGen::getFixupDepth () const
 
EHScopeStack::stable_iterator clang::CodeGen::getEnclosingNormalCleanup () const
 
size_t clang::CodeGen::getCleanupSize () const
 
void * clang::CodeGen::getCleanupBuffer ()
 
EHScopeStack::Cleanup * clang::CodeGen::getCleanup ()
 
bool clang::CodeGen::hasBranches () const
 True if this cleanup scope has any branch-afters or branch-throughs. More...
 
void clang::CodeGen::addBranchAfter (llvm::ConstantInt *Index, llvm::BasicBlock *Block)
 Add a branch-after to this cleanup scope. More...
 
unsigned clang::CodeGen::getNumBranchAfters () const
 Return the number of unique branch-afters on this scope. More...
 
llvm::BasicBlock * clang::CodeGen::getBranchAfterBlock (unsigned I) const
 
llvm::ConstantInt * clang::CodeGen::getBranchAfterIndex (unsigned I) const
 
bool clang::CodeGen::addBranchThrough (llvm::BasicBlock *Block)
 Add a branch-through to this cleanup scope. More...
 
bool clang::CodeGen::hasBranchThroughs () const
 Determines if this cleanup scope has any branch throughs. More...
 
static bool clang::CodeGen::classof (const EHScope *Scope)
 

Variables

class LLVM_ALIGNAS(8)
EHCleanupScope
EHScopeStack::stable_iterator 
clang::CodeGen::EnclosingEH
 A cleanup scope which generates the cleanup blocks lazily. More...
 
llvm::BasicBlock * clang::CodeGen::NormalBlock
 The dual entry/exit block along the normal edge. More...
 
llvm::AllocaInst * clang::CodeGen::ActiveFlag
 An optional i1 variable indicating whether this cleanup has been activated yet. More...
 
struct ExtInfo * clang::CodeGen::ExtInfo
 
unsigned clang::CodeGen::FixupDepth
 The number of fixups required by enclosing scopes (not including this one). More...