LLVM  10.0.0svn
Classes | Namespaces | Typedefs | Functions
PointerUnion.h File Reference
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/Support/PointerLikeTypeTraits.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
Include dependency graph for PointerUnion.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llvm::PointerUnionTypeSelectorReturn< T >
 
struct  llvm::PointerUnionTypeSelector< T1, T2, RET_EQ, RET_NE >
 Get a type based on whether two types are the same or not. More...
 
struct  llvm::PointerUnionTypeSelector< T, T, RET_EQ, RET_NE >
 
struct  llvm::PointerUnionTypeSelectorReturn< PointerUnionTypeSelector< T1, T2, RET_EQ, RET_NE > >
 
struct  llvm::pointer_union_detail::TypeIndex< T, Us >
 Find the index of a type in a list of types. More...
 
struct  llvm::pointer_union_detail::TypeIndex< T, T, Us... >
 
struct  llvm::pointer_union_detail::TypeIndex< T, U, Us... >
 
struct  llvm::pointer_union_detail::TypeIndex< T >
 
struct  llvm::pointer_union_detail::GetFirstType< T,... >
 Find the first type in a list of types. More...
 
class  llvm::pointer_union_detail::PointerUnionUIntTraits< PTs >
 Provide PointerLikeTypeTraits for void* that is used by PointerUnion for the template arguments. More...
 
struct  llvm::pointer_union_detail::AssignableFrom< Derived, T >
 Implement assigment in terms of construction. More...
 
class  llvm::pointer_union_detail::PointerUnionMembers< Derived, ValTy, I, Types >
 
class  llvm::pointer_union_detail::PointerUnionMembers< Derived, ValTy, I >
 
class  llvm::pointer_union_detail::PointerUnionMembers< Derived, ValTy, I, Type, Types... >
 
class  llvm::PointerUnion< PTs >
 A discriminated union of two or more pointer types, with the discriminator in the low bit of the pointer. More...
 
struct  llvm::PointerLikeTypeTraits< PointerUnion< PTs... > >
 
struct  llvm::DenseMapInfo< PointerUnion< PTs... > >
 

Namespaces

 llvm
 This class represents lattice values for constants.
 
 llvm::pointer_union_detail
 

Typedefs

template<typename PT1 , typename PT2 , typename PT3 >
using llvm::PointerUnion3 = PointerUnion< PT1, PT2, PT3 >
 A pointer union of three pointer types. More...
 
template<typename PT1 , typename PT2 , typename PT3 , typename PT4 >
using llvm::PointerUnion4 = PointerUnion< PT1, PT2, PT3, PT4 >
 A pointer union of four pointer types. More...
 

Functions

constexpr int llvm::pointer_union_detail::bitsRequired (unsigned n)
 Determine the number of bits required to store integers with values < n. More...
 
template<typename... Ts>
constexpr int llvm::pointer_union_detail::lowBitsAvailable ()
 
template<typename ... PTs>
bool llvm::operator== (PointerUnion< PTs... > lhs, PointerUnion< PTs... > rhs)
 
template<typename ... PTs>
bool llvm::operator!= (PointerUnion< PTs... > lhs, PointerUnion< PTs... > rhs)
 
template<typename ... PTs>
bool llvm::operator< (PointerUnion< PTs... > lhs, PointerUnion< PTs... > rhs)