LLVM  3.7.0
Classes | Namespaces | Functions
IntrusiveRefCntPtr.h File Reference
#include <atomic>
#include <cassert>
#include <cstddef>
Include dependency graph for IntrusiveRefCntPtr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::IntrusiveRefCntPtr< T >
 IntrusiveRefCntPtr - A template class that implements a "smart pointer" that assumes the wrapped object has a reference count associated with it that can be managed via calls to IntrusivePtrAddRef/IntrusivePtrRelease. More...
 
class  llvm::RefCountedBase< Derived >
 RefCountedBase - A generic base class for objects that wish to have their lifetimes managed using reference counts. More...
 
class  llvm::RefCountedBaseVPTR
 RefCountedBaseVPTR - A class that has the same function as RefCountedBase, but with a virtual destructor. More...
 
struct  llvm::IntrusiveRefCntPtrInfo< T >
 
class  llvm::ThreadSafeRefCountedBase< Derived >
 A thread-safe version of llvm::RefCountedBase. More...
 
class  llvm::IntrusiveRefCntPtr< T >
 IntrusiveRefCntPtr - A template class that implements a "smart pointer" that assumes the wrapped object has a reference count associated with it that can be managed via calls to IntrusivePtrAddRef/IntrusivePtrRelease. More...
 
struct  llvm::simplify_type< From >
 
struct  llvm::simplify_type< IntrusiveRefCntPtr< T > >
 
struct  llvm::simplify_type< const IntrusiveRefCntPtr< T > >
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Functions

template<class T , class U >
bool llvm::operator== (const IntrusiveRefCntPtr< T > &A, const IntrusiveRefCntPtr< U > &B)
 
template<class T , class U >
bool llvm::operator!= (const IntrusiveRefCntPtr< T > &A, const IntrusiveRefCntPtr< U > &B)
 
template<class T , class U >
bool llvm::operator== (const IntrusiveRefCntPtr< T > &A, U *B)
 
template<class T , class U >
bool llvm::operator!= (const IntrusiveRefCntPtr< T > &A, U *B)
 
template<class T , class U >
bool llvm::operator== (T *A, const IntrusiveRefCntPtr< U > &B)
 
template<class T , class U >
bool llvm::operator!= (T *A, const IntrusiveRefCntPtr< U > &B)
 
template<class T >
bool llvm::operator== (std::nullptr_t A, const IntrusiveRefCntPtr< T > &B)
 
template<class T >
bool llvm::operator== (const IntrusiveRefCntPtr< T > &A, std::nullptr_t B)
 
template<class T >
bool llvm::operator!= (std::nullptr_t A, const IntrusiveRefCntPtr< T > &B)
 
template<class T >
bool llvm::operator!= (const IntrusiveRefCntPtr< T > &A, std::nullptr_t B)