LLVM API Documentation

Static Public Member Functions
llvm::ilist_sentinel_traits< NodeTy > Struct Template Reference

#include <ilist.h>

Inheritance diagram for llvm::ilist_sentinel_traits< NodeTy >:
Inheritance graph
[legend]

List of all members.

Static Public Member Functions

static NodeTy * createSentinel ()
 createSentinel - create the dynamic sentinel
static void destroySentinel (NodeTy *N)
 destroySentinel - deallocate the dynamic sentinel
static NodeTy * provideInitialHead ()
static NodeTy * ensureHead (NodeTy *&Head)
static void noteHead (NodeTy *NewHead, NodeTy *Sentinel)
 noteHead - stash the sentinel into its default location

Detailed Description

template<typename NodeTy>
struct llvm::ilist_sentinel_traits< NodeTy >

ilist_sentinel_traits - A fragment for template traits for intrusive list that provides default sentinel implementations for common operations.

ilist_sentinel_traits implements a lazy dynamic sentinel allocation strategy. The sentinel is stored in the prev field of ilist's Head.

Definition at line 76 of file ilist.h.


Member Function Documentation

template<typename NodeTy>
static NodeTy* llvm::ilist_sentinel_traits< NodeTy >::createSentinel ( ) [inline, static]

createSentinel - create the dynamic sentinel

Definition at line 78 of file ilist.h.

Referenced by llvm::ilist_traits< BasicBlock >::ensureHead(), llvm::ilist_traits< MachineInstr >::ensureHead(), llvm::ilist_traits< Function >::ensureHead(), llvm::ilist_traits< Instruction >::ensureHead(), llvm::ilist_traits< RecyclerStruct >::ensureHead(), llvm::ilist_traits< MachineBasicBlock >::ensureHead(), llvm::ilist_traits< Argument >::ensureHead(), llvm::ilist_traits< GlobalVariable >::ensureHead(), llvm::ilist_traits< GlobalAlias >::ensureHead(), llvm::ilist_traits< IndexListEntry >::ensureHead(), llvm::ilist_traits< SDNode >::ensureHead(), llvm::ilist_sentinel_traits< IVStrideUse >::ensureHead(), llvm::ilist_traits< NamedMDNode >::ensureHead(), llvm::ilist_traits< IVStrideUse >::ensureHead(), llvm::ilist_traits< SparseBitVectorElement< ElementSize > >::ensureHead(), llvm::ilist_traits< BasicBlock >::provideInitialHead(), llvm::ilist_traits< Function >::provideInitialHead(), llvm::ilist_traits< MachineInstr >::provideInitialHead(), llvm::ilist_traits< Instruction >::provideInitialHead(), llvm::ilist_traits< RecyclerStruct >::provideInitialHead(), llvm::ilist_traits< MachineBasicBlock >::provideInitialHead(), llvm::ilist_traits< Argument >::provideInitialHead(), llvm::ilist_traits< GlobalVariable >::provideInitialHead(), llvm::ilist_traits< GlobalAlias >::provideInitialHead(), llvm::ilist_traits< IndexListEntry >::provideInitialHead(), llvm::ilist_traits< SDNode >::provideInitialHead(), llvm::ilist_traits< NamedMDNode >::provideInitialHead(), llvm::ilist_traits< IVStrideUse >::provideInitialHead(), and llvm::ilist_traits< SparseBitVectorElement< ElementSize > >::provideInitialHead().

template<typename NodeTy>
static void llvm::ilist_sentinel_traits< NodeTy >::destroySentinel ( NodeTy *  N) [inline, static]
template<typename NodeTy>
static NodeTy* llvm::ilist_sentinel_traits< NodeTy >::ensureHead ( NodeTy *&  Head) [inline, static]

ensureHead - make sure that Head is either already initialized or assigned a fresh sentinel

Returns:
the sentinel

Definition at line 91 of file ilist.h.

template<typename NodeTy>
static void llvm::ilist_sentinel_traits< NodeTy >::noteHead ( NodeTy *  NewHead,
NodeTy *  Sentinel 
) [inline, static]
template<typename NodeTy>
static NodeTy* llvm::ilist_sentinel_traits< NodeTy >::provideInitialHead ( ) [inline, static]

provideInitialHead - when constructing an ilist, provide a starting value for its Head

Returns:
null node to indicate that it needs to be allocated later

Definition at line 86 of file ilist.h.


The documentation for this struct was generated from the following file: