LLVM 20.0.0git
|
This file defines the PointerUnion class, which is a discriminated union of pointer types. More...
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/PointerLikeTypeTraits.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
Go to the source code of this file.
Classes | |
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... | |
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::CastInfoPointerUnionImpl< PTs > |
We can't (at least, at this moment with C++14) declare CastInfo as a friend of PointerUnion like this: More... | |
struct | llvm::CastInfo< To, PointerUnion< PTs... > > |
struct | llvm::CastInfo< To, const PointerUnion< PTs... > > |
struct | llvm::PointerLikeTypeTraits< PointerUnion< PTs... > > |
struct | llvm::DenseMapInfo< PointerUnion< PTs... > > |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
namespace | llvm::pointer_union_detail |
Functions | |
constexpr int | llvm::pointer_union_detail::bitsRequired (unsigned n) |
Determine the number of bits required to store integers with values < n. | |
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) |
This file defines the PointerUnion class, which is a discriminated union of pointer types.
Definition in file PointerUnion.h.